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




vimrc tab 4 space (8)

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

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

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


권장되는 방법은 filetype 기반 들여 쓰기를 사용하고 smartindent와 incind를 사용하여 충분하지 않은 경우에만 사용하는 것입니다.

.vimrc에 다음을 추가하십시오.

set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on

희망이 다른 답변으로 도움이됩니다.


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

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.


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

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

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


우분투와 같은 많은 Linux 시스템에서 .vimrc 파일은 기본적으로 존재하지 않으므로 먼저 만들어야합니다.

홈 디렉토리에있는 .viminfo 파일을 사용하지 마십시오. 다른 용도로 사용됩니다.

1 단계 : 홈 디렉토리로 이동

cd ~

2 단계 : 파일 만들기

vim .vimrc

3 단계 : 위에서 설명한 구성 추가

filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab

3 단계 : Shift + ZZ 를 눌러 파일을 저장합니다.


아래의 몇 가지 답변에서 지적했듯이 선호되는 방법은 이제 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


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





auto-indent