[vim] 파일 유형별로 Vim 공백 환경 설정

일할 때 들여 쓰기를 위해 집 스타일을 따라야합니다.

  • HTML과 루비를 코딩 할 때 2 개의 공백
  • 자바 스크립트 코딩시 tabwidth = 4가 권장되는 탭

파일 유형마다 다른 공백 환경 설정을 지정하는 가장 좋은 방법은 무엇입니까?



답변

여러 가지 방법이 있지만 간단하고 이해하기 쉬운 방법이 있습니다. 이 줄을 당신의 ~/.vimrc:

autocmd FileType html setlocal ts=2 sts=2 sw=2
autocmd FileType ruby setlocal ts=2 sts=2 sw=2
autocmd FileType javascript setlocal ts=4 sts=4 sw=4


답변

Peter의 대답은 간단하지만 불행히도 옵션이 옳지 않습니다. 대신 다음 옵션을 사용해야합니다.

autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab

참고 사항 :

  • 를 사용하여 vim show tab 문자를 만들 수 있습니다 :set list.
  • 탭 / 공간 옵션이 올바르게 설정되면 :retab!명령을 사용하여 vim이 파일을 복구하거나 (공간을 탭으로 대체하거나 그 반대로) 만들 수 있습니다 .

답변

Peter의 대답은 +1이지만 Vim은 또 다른 솔루션을 제공합니다. 한 번 setlocal에 전체 옵션, 명령 및 매핑을 설정하는 것과 같이 단일보다 복잡한 작업을 수행하려는 경우 vim의 파일 유형 플러그인 기능이 구출됩니다.

당신이 필요 filetype plugin on하거나 filetype plugin indent on당신의 .vimrc다음 만들 수있는 예를 들어 루비를위한 플러그인을 만들 수 ~/.vim/ftplugin/ruby.vim. 기술적으로 당신이 여기에서 원하는 명령을 사용할 수 있습니다, 루비 파일이로드 될 때 실행되지만 권장 설정이 포함되는 setlocal, map <buffer>, command -buffer, 및 정의하는 기능을합니다. 더 많은 정보는 사용자 안내서에 있습니다; 스크립팅 vim에 익숙하다면으로 이동하십시오 . :help 41.11그렇지 않으면 :help usr_40및을 읽으십시오 :help usr_41.


답변

멋진 vim 스크립트도 있습니다 : DetectIndent 는 열려있는 파일의 들여 쓰기를 감지하려고합니다. 코딩 스타일이 다른 많은 파일로 작업하는 경우 매우 편리합니다.

.vimrc 에서 자동 명령을 사용합니다 .

:autocmd BufReadPost * :DetectIndent


답변

탭 키를 누를 때마다 공백 문자를 삽입하려면 ‘확장 탭’옵션을 설정하십시오.

:set expandtab

다음 단계는 탭 키를 눌렀을 때 삽입되는 공백 문자 수를 제어하고 ‘tabstop’옵션을 설정하는 것입니다. 예를 들어 탭에 공백을 2 개 삽입하려면 다음을 사용하십시오.

:set tabstop=2

심판 : http://vim.wikia.com/wiki/Converting_tabs_to_spaces


답변