현재 설정은 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
그런 다음 아래 구성을 파일에 붙여 넣습니다. 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
답변
또는 vim modeline의 약칭 :
vim :set ts=4 sw=4 sts=4 et :
답변
공백 또는 탭 사용 여부를 정의하는 설정이 거의 없습니다.
다음은 ~/.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’이 변경 될 때 정렬 된 주석이 잘못됩니다.
출처:
- vimdoc.sourceforge.net/htmldoc/options.html#’tabstop ‘
:help tabstop
답변
한 가지 더,
:retab
기존 tab
을 http://vim.wikia.com/wiki/Converting_tabs_to_spaces 로 변환하는 데 사용하십시오.spaces