IT Share you

Vim에서 언어별로 다른 탭 설정을 어떻게 설정합니까?

shareyou 2020. 11. 16. 23:12
반응형

Vim에서 언어별로 다른 탭 설정을 어떻게 설정합니까?


.vimrc 에는 두 개의 공백으로 된 일반 탭 설정이 있으며 언어 별 기본 (즉, Python의 경우 4 개, 그렇지 않으면 기본값 사용)에서이를 재정의하고 싶지만 이것의 좋은 예를 찾는 데 어려움이 있습니다.


설정을 파일 유형 플러그인 파일 ~ / .vim / ftplugin / LANGUAGE.vim에 넣으십시오. 내 ~ / .vim / ftplugin / perl.vim에는 다음 행이 포함되어 있습니다.

"
" ---------- tabulator / shiftwidth --------------------
"  Set tabulator and shift width to 4 (Perl Style Guide)
"
setlocal  tabstop=4
setlocal  shiftwidth=4
"

이러한 설정은 파일 유형이 'perl'(신규 또는 기존) 인 각 파일에 대해 자동으로 적용됩니다.


이 다른 답변은 너무 복잡해 보입니다. ~ / .vim 트리에서 더 많은 디렉토리와 파일을 엉망으로 만드는 대신 ~ / .vimrc에 다음을 추가하십시오.

autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4

(l33t 일 수 있으며 매개 변수를으로 축약 할 수 있습니다 et ts=4 sw=4 sts=4). 파일 유형별 Vim 공백 환경 설정 에서 이것을 찾았습니다.


내 대답은 VIM Wiki 의이 팁기반으로 합니다 . 이 답변은 "after"디렉토리를 사용하므로 다른 파일 유형에 대해 제공된 플러그인 파일을 사용할 필요가 없습니다.

예를 들어 Python 파일에 대한 사용자 지정 설정을 지정 python.vim하려면 Python 설정을 저장 하는라는 파일을 만듭니다 .

setlocal expandtab
setlocal shiftwidth=4
setlocal softtabstop=4

이 파일을

  • ~/.vim/after/ftplugin (리눅스)
  • $HOME/vimfiles/after/ftplugin (윈도우)

마지막으로 .vimrc(Linux) 또는 _vimrc(Windows)에 다음 이 있어야합니다 .

filetype plugin indent on

일반적으로 특정 언어에 대한 설정을 사용하여 특수 vimrc 유형 파일을 설정 한 다음 기본 .vimrc에서 자동 명령을 사용하여 필요할 때 특수 vimrc를 실행합니다. Haskell ( .hs등) 파일에 대한 구성은 다음과 같습니다 .

autocmd! BufNewFile,BufReadPre,FileReadPre  *.hs    so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre  *.hsc   so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre  *.lhs   so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre  *.cabal so ~/.vim/haskell.vim

필자 ~/.vim/haskell.vim는 탭 대신 공백을 사용하도록 "확장 탭 설정"과 같은 작업을 수행하고, 형식 지정 및 이와 같은 모든 종류의 마법을 사용합니다. http://vim.org 및 기타 사이트 에서 다양한 언어에 대한 좋은 버전을 다운로드 할 수 있습니다 .

Vim 설정을 변경하는 것보다 더 많은 작업을 수행 할 수 있습니다. 예를 들어 편집 전후에 필터를 통해 파일을 실행할 수 있습니다.

" Edit gpg-encrypted ascii-armoured files
autocmd! BufReadPre,FileReadPre      *.asc  set bin
autocmd  BufReadPost,FileReadPost    *.asc  '[,']!gpg -q -d
autocmd  BufReadPost,FileReadPost    *.asc  set nobin
autocmd! BufWritePre,FileWritePre    *.asc  set bin
autocmd  BufWritePre,FileWritePre    *.asc  '[,']!gpg -e
autocmd  BufWritePost,FileWritePost  *.asc  undo
autocmd  BufWritePost,FileWritePost  *.asc  set nobin

편집기 구성 플러그인을 사용하고 모든 프로젝트에 .editorconfig 파일을 추가합니다. 동일한 프로그래밍 언어를 사용하여 서로 다른 프로젝트에 대해 서로 다른 들여 쓰기 설정을 정의 할 수 있으므로 동일한 언어의 서로 다른 프로젝트가 서로 다른 코딩 표준을 갖는 경우가 많습니다.

여기에서 설정할 수있는 구성 유형의 예를 볼 수 있습니다. http://editorconfig.org/

참고 URL : https://stackoverflow.com/questions/891805/how-do-i-set-up-different-tab-settings-for-different-languages-in-vim

반응형