visual - Vim에서 탭 키== 4 개 공백과 중괄호로 자동 들여 쓰기




vimrc tab 4 space (6)

vi - Vim 탭을 사용하지 않도록하려면 어떻게해야합니까? 탭을 공백으로 변환하고 탭 키를 == 4로 만들고 Emacs 와 같은 중괄호 블록 뒤에 자동으로 들여 쓰기를합니까?

또한이 설정을 저장하여 어떻게 다시 입력 할 필요가 없습니까?

이 문제와 관련된 다른 질문을 보았지만 항상 원하는 것에서 조금 벗어난 것처럼 보입니다.


~ / .vimrc를 편집하십시오.

$ vim ~/.vimrc

다음 행을 추가하십시오.

set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

관련하여 탭과 공백을 모두 사용하는 파일을 여는 경우

set expandtab ts=4 sw=4 ai

모든 탭을 전체 파일의 공백으로 바꿀 수 있습니다.

:%retab

대부분의 파일에 4-space 탭, Makefile에있는 실제 8-wide 탭 문자 및 C / C ++를 포함한 다양한 파일에서의 자동 들여 쓰기를 ~/.vimrc 파일에 넣으려면 :

" Only do this part when compiled with support for autocommands.
if has("autocmd")
    " Use filetype detection and file-based automatic indenting.
    filetype plugin indent on

    " Use actual tab chars in Makefiles.
    autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab
endif

" For everything else, use a tab width of 4 space chars.
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.

아래의 몇 가지 답변에서 지적했듯이 선호되는 방법은 이제 smartindent를 사용하지 말고 대신 .vimrc 에서 다음을 사용하십시오.

filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

.vimrc 파일에서 :

set smartindent
set tabstop=4
set shiftwidth=4
set expandtab

도움말 파일은 익숙해지기까지 약간의 시간이 걸리지 만 읽는다면 Vim의 성능이 향상됩니다.

:help smartindent

더 좋게도이 설정을 소스에 임베드하여 이식성을 높일 수 있습니다.

:help auto-setting

현재 설정을 보려면 다음을 수행하십시오.

:set all

graywh 지적했듯이, smartindent는 C와 유사한 문법을 ​​사용하는 언어의 경우에도 여전히 "더 똑똑하게 작동합니다"라고하는 cindent로 대체되었습니다.

:help C-indenting


자동 들여 쓰기는 현재 구문 모드를 기반으로합니다. 나는 당신이 Foo.java를 편집하고 있다면, { 그리고 타격 Enter를 입력 하면 다음 행을 들여 쓰기를한다는 것을 압니다.

탭의 경우 두 가지 설정이 있습니다. Vim에서 콜론을 입력 한 다음 "set tabstop = 4"를 입력하면 탭이 4 개의 공백으로 표시되도록 설정됩니다. 콜론을 다시 누르고 탭에 공백을 넣을 "set expandtab"을 입력하십시오.

이 설정은 홈 디렉토리의 .vimrc (또는 Windows의 경우 _vimrc)에 넣을 수 있으므로 한 번만 입력하면됩니다.


파일 유형별로 들여 쓰기를 얻는 가장 좋은 방법은 vimrc에서 filetype plugin indent on 를 사용하는 것입니다. 예를 들어, .vim / ftplugin / c.vim에서 set sw=4 sts=4 et 와 같은 것을 지정할 수 있습니다. 예를 들어 편집중인 모든 파일에 대해 전역화할 필요없이 C 유형이 아닌 다른 구문이 올바르게 들여 쓰기가 가능합니다. 너무 (심지어 lisps) .





auto-indent