현재 설정은 8 개의 공백을 가정합니다. 어떻게 재정의 할 수 있습니까?
현재 설정은 8 개의 공백을 가정합니다. 어떻게 재정의 할 수 있습니까?
답변:
그것은 당신이 무엇을 의미하는지에 달려 있습니다. 파일의 실제 탭 문자 가 4 칸 넓이 로 나타나 도록 하시겠습니까 , 또는 "tab"은 실제로 탭 키를 눌러 생성 된 들여 쓰기를 의미합니까? 입력 한 "탭"각각?
답변에 따라 다음 설정 중 하나가 적합합니다.
4 칸 너비로 나타나는 탭 문자 :
set tabstop=4
소스 코드에서 실제 탭 문자를 사용하는 경우 이러한 설정을 원할 수도 있습니다 (실제로는 기본값이지만 방어 적으로 설정할 수도 있습니다).
set softtabstop=0 noexpandtab
마지막으로 들여 쓰기가 단일 탭에 해당되도록하려면 다음을 사용해야합니다.
set shiftwidth=4
공백 문자 4 개로 구성 되지만 탭 키로 입력 된 들여 쓰기의 경우 :
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
위의 설정을 영구적으로 만들려면 vimrc 에이 줄을 추가하십시오 .
조정이 필요하거나 이러한 옵션의 의미가 무엇인지 이해하려는 경우 각 옵션의 의미에 대해 설명합니다.
tabstop
"공백"으로 측정 한 하드 탭 스톱의 너비-실제 탭 문자의 최대 너비입니다.
shiftwidth
"들여 쓰기"의 크기입니다. 또한 공백으로 측정되므로 코드베이스가 탭 문자로 들여 쓰기되면 탭 문자
shiftwidth
수와 같기 를 원합니다tabstop
. 이것은 또한=
,>
및<
명령 과 같은 것들에 의해 사용됩니다 .
softtabstop
이 값을 0이 아닌 값으로 설정하면
tabstop
(삽입 모드에서) 탭 키가 공백과 탭 조합을 삽입 하여이 폭에서 탭 정지 를 시뮬레이션 합니다.
expandtab
이를 사용하면 탭 키 (삽입 모드에서)가 탭 문자 대신 공백을 삽입합니다. 이것은
retab
명령 의 동작에도 영향을줍니다 .
smarttab
이 기능을 활성화하면 커서가 줄의 시작 부분에있을 때 탭 키 (삽입 모드에서) 삽입 공간 또는 탭이 다음 탭 정지의 다음 들여 쓰기로 이동합니다 (즉, 앞의 유일한 문자는 공백 임).
이들의에 대한 자세한 내용은 참조하십시오 (예 : VIM에서 ):help 'optionname'
:help 'tabstop'
~/.vimrc
사용자의 vim 설정입니다. 대부분의 사람들은 시스템 설정을 그대로두고 사용자 설정을 편집합니다. 참고 ~/.vimrc
대부분의 시스템에서 그것을 만들 때까지 존재하지 않습니다.
set softtabstop=4
기능 을 주목하십시오 ! 탭을 임의의 수의 공백으로 재정의했기 때문에 (시스템의 나머지 부분은 다르게 생각하지만) less
, 또는 다른 편집기를 사용하여 코드를 읽는 데 지쳤습니다 vim
! :-)
tabstop=8
누군가이 대답이 4 개의 공백 으로 구성된 들여 쓰기 에 사용한다고 말하는 이유를 이해할 수 있습니까? 다양한 설정에 대한 설명을 읽은 후 이유를 알 수 없습니다. 또 다른 대답은 tabstop=4
조금 더 이해가되는 사용법 입니다.
tabstop
옵션은 하드 탭 문자의 너비를 제어합니다. - 당신은 당신의 들여 쓰기 4-넓은 4 개 공백 문자가 아닌 하나의 탭 문자, 중요하지 않습니다 당신의 탭 문자의 다음 폭으로 구성하려면 종류의 . 실제로, 탭 문자 너비가 들여 쓰기 너비와 달라서 탭 문자가 적절한 들여 쓰기로 가장 할 가능성을 줄이려고합니다. ( list
+ expandtab
도 여기에 도움이 될 수 있습니다.) 또한 8 문자 너비 탭은 "표준"입니다. 터미널, Python 및 기타 여러 도구의 기본값은 8 문자 너비 탭입니다.
현재 사용자에 대해 영구적으로이를 정의하려면 .vimrc
파일을 작성 (또는 편집) 하십시오.
$ vim ~/.vimrc
그런 다음 아래 구성을 파일에 붙여 넣습니다. vim이 다시 시작되면 탭 설정이 적용됩니다.
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set expandtab " Expand TABs to spaces
공백 또는 탭 사용 여부를 정의하는 설정이 거의 없습니다.
다음은 ~/.vimrc
파일 에서 정의 할 수있는 편리한 기능입니다 .
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
용법:
:call UseTabs()
:call UseSpaces()
파일 확장자별로 사용하려면 다음 구문을 사용할 수 있습니다 (에 추가됨 .vimrc
).
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
참조 : 탭을 공백으로 변환 .
다음은 탭과 공백 을 전환 하는 데 사용할 수있는 Wikia의 다른 스 니펫입니다 .
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
set expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
모든 탭에 4 개의 공백을 사용 F9하고 설정을 전환 하기위한 매핑을 사용할 수 있습니다.
나는 이것을 내 .vimrc 파일에 복사하여 붙여 넣었다.
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
처음 2 개의 설정은 Tab 키를 누르면 4 개의 공백이 있음을 의미합니다. 세 번째 설정은 내가 할 때 V>
(즉, 시각적이고 들여 쓰기) 4 개의 공백을 얻는다는 것을 의미합니다.
허용되는 답변만큼 포괄적이지는 않지만 복사하여 붙여 넣기를 원하는 사람들에게 도움이 될 수 있습니다.
~ / .vimrc 파일 에 원하는 설정을 지정 하십시오-일부 지침 및 모범 사례는 아래를 참조하십시오.
Vim에서 탭을 사용하는 4 가지 주요 방법이 있습니다 :
항상 'tabstop'을 8로 유지하고 'softtabstop'및 'shiftwidth'를 4 (또는 3 또는 원하는 것)로 설정하고 'noexpandtab'을 사용하십시오. 그런 다음 Vim은 탭과 공백을 혼합하여 사용하지만 입력하면 4 자 또는 3 자마다 탭이 나타나는 것처럼 동작합니다.
참고 : 'tabstop'을 8 이외의 다른 값으로 설정하면 파일이 여러 위치에서 잘못 표시 될 수 있습니다 (예 : 인쇄시).
'tabstop'및 'shiftwidth'를 원하는 것으로 설정하고 'expandtab'을 사용하십시오. 이런 식으로 항상 공백을 삽입합니다. 'tabstop'이 변경되면 서식이 엉망이되지 않습니다.
'tabstop'및 'shiftwidth'를 원하는대로 설정하고 | modeline | 파일을 다시 편집 할 때이 값을 설정하십시오. Vim을 사용하여 파일을 편집 할 때만 작동합니다.
'tabstop'과 'shiftwidth'는 항상 같은 값으로 설정하고 'noexpandtab'을 설정하십시오. 그런 다음 사람들이 사용하는 탭 중지 설정에 대해 작동해야합니다 (초기 들여 쓰기에만 해당). 이렇게하면 공백이 아닌 첫 번째 공백이 아닌 후에 탭이 있으면 좋을 것입니다. 그렇지 않으면 'tabstop'이 변경 될 때 정렬 된 주석이 잘못됩니다.
출처:
:help tabstop
:help tabstop
vim에서 그대로 사용됩니다 .
한 가지 더,
:retab
기존 tab
을 http://vim.wikia.com/wiki/Converting_tabs_to_spaces 로 변환하는 데 사용하십시오.spaces
:set sw=4
VI 편집기 마스터하기를 참조하십시오
사용자 단위
set ts=4
로
~/.vimrc
파일에 줄 을 추가
하거나
/etc/vimrc
시스템 전체 에 파일로 추가
주석이있는 내 기본 ~ / .vimrc :
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>
모든 사용자에 대한 영구적 (서버에 혼자있는 경우) :
# echo "set tabstop=4" >> /etc/vim/vimrc
일반적으로 새 서버 apt-get purge nano mc
와 다른 모든 서버에서 시간을 절약하십시오. 그렇지 않으면 편집기에서 재정의 git
, crontab
등
F10
는 nano
없지만 항상 save로 몇 가지 트릭을 수행합니다 (어쩌면 F10
해결책 일 수 있습니다). 아니면 작동하지 screen
않습니까? 기억이 안나요. 그냥 싫어 해요)