답변:
.vim
vim이 특정 파일 형식으로 전환 될 때마다 실행할 파일을 추가 할 수 있습니다 .
예를 들어 다음 ~/.vim/after/ftplugin/html.vim
과 같은 내용 의 파일 이 있습니다.
setlocal shiftwidth=2
setlocal tabstop=2
vim이 들여 쓰기를 위해 너비가 2자인 탭을 사용하게합니다 ( noexpandtab
옵션은 구성의 다른 곳에서 전역 적으로 설정 됨).
http://vimdoc.sourceforge.net/htmldoc/usr_05.html#05.4 에서 파일 유형 플러그인 섹션으로 스크롤 하십시오 .
~/.vim/after/ftplugin/html.vim
대신에 넣어야합니다 . 그러나 다른 사람들이 아래에 지적했듯이에 추가 autocmd FileType html setlocal shiftwidth=2 tabstop=2
하는 것이 훨씬 .vimrc
좋습니다.
autocmd FileType javascript setlocal shiftwidth=2 tabstop=2
)
filetype plugin on
vimrc에도 추가 해야합니다.
ftplugins 또는 자동 명령을 사용하여 옵션을 설정하십시오.
에 ~/.vim/ftplugin/python.vim:
setlocal shiftwidth=2 softtabstop=2 expandtab
그리고 다음을 켜는 것을 잊지 마십시오 ~/.vimrc
.
filetype plugin indent on
( :h ftplugin
자세한 내용은)
에서 ~/.vimrc
:
autocmd FileType python setlocal shiftwidth=2 softtabstop=2 expandtab
긴 명령 또는 설정을 짧은 버전으로 바꿀 수 있습니다.
autocmd
: au
setlocal
: setl
shiftwidth
: sw
tabstop
: ts
softtabstop
: sts
expandtab
: :et
나는 또한 차이 학습 제안 tabstop
및 softtabstop
. 많은 사람들이에 대해 모릅니다 softtabstop
.
sw
짧다 softwidth
, sts
짧다 softtabstop
, et
짧다 expandtab
, setl
짧다 setlocal
, au
짧다 autocmd
. 짧은 양식 대신 긴 양식을 사용할 수 있습니다.
sw
확장 한다고 생각 합니다 . shiftwidth
softwidth
을 수정 ~/.vimrc
하고 html/rb
들여 쓰기에 다른 파일 형식을 추가 하십시오 . 예를 들어 2 칸 js/coffee
들여 쓰기, 4 칸 들여 쓰기
" by default, the indent is 2 spaces.
set shiftwidth=2
set softtabstop=2
set tabstop=2
" for html/rb files, 2 spaces
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
" for js/coffee/jade files, 4 spaces
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype coffeescript setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype jade setlocal ts=4 sw=4 sts=0 expandtab
파일 유형별로 Vim 공백 환경 설정 지정을 참조하십시오.
"
:)
'
는 모든 Linux의 vim에서 오류를 발생시킵니다. (7.3+, 8.0 ...)
"
다른 하나와 닫지 마십시오 "
. 내가 왜 그것을 언급했는지 잘 모르겠습니다.
'
하지만 "
오른쪽 "
@. @ 없이 남지 않았습니다
~ / .vimrc에 파일 접미사를 기반으로 autocmd 명령을 넣습니다.
autocmd BufRead,BufNewFile *.c,*.h,*.java set noic cin noexpandtab
autocmd BufRead,BufNewFile *.pl syntax on
찾고있는 명령은 아마도 ts = 및 sw =
FileType
?
나는 보통 expandtab
set 으로 작업 하지만 makefile에는 좋지 않습니다. 나는 최근에 추가했다 :
:autocmd FileType make set noexpandtab
내 .vimrc 파일 끝까지 Makefile, makefile 및 * .mk를 makefile로 인식하고 탭을 확장하지 않습니다. 아마도 이것을 확장 할 수 있습니다.
개인적으로 .vimrc에서 다음 설정을 사용합니다.
autocmd FileType python set tabstop=8|set shiftwidth=2|set expandtab
autocmd FileType ruby set tabstop=8|set shiftwidth=2|set expandtab
오늘, 당신은 editorconfig 시도 할 수 있으며, 그것을위한 vim 플러그인 도 있습니다. 이를 통해 vim에서 들여 쓰기 크기를 변경할 수있을뿐만 아니라 다른 많은 편집기에서도 일관된 코딩 스타일을 유지할 수 있습니다.
아래는 간단한 editorconfig입니다. 파이썬 파일에는 들여 쓰기를위한 4 개의 공백이 있고, pug 템플릿 파일은 2 개만 있습니다.
# 4 space indentation for python files
[*.py]
indent_style = space
indent_size = 4
# 2 space indentation for pug templates
[*.pug]
indent_size = 2
를 사용하는 사람들을 autocmd
위해 그룹화하는 것이 가장 좋습니다. 그룹화가 파일 유형 감지와 관련이있는 경우 다음과 같은 내용이있을 수 있습니다.
augroup filetype_c
autocmd!
:autocmd FileType c setlocal tabstop=2 shiftwidth=2 softtabstop=2 expandtab
:autocmd FileType c nnoremap <buffer> <localleader>c I/*<space><esc><s-a><space>*/<esc>
augroup end
그룹화 .vimrc
는 파일 형식에 여러 규칙이 연결되어 있으면 특히 체계적으로 정리할 수 있습니다. 위의 예에서는 .c 파일과 관련된 주석 바로 가기가 정의되어 있습니다.
초기 호출 autocmd!
은 vim에게 해당 그룹에서 이전에 정의 된 자동 명령을 삭제 하도록 지시합니다. 이렇게하면 .vimrc
다시 정의 된 경우 중복 정의를 방지 할 수 있습니다. 자세한 내용은를 참조하십시오 :help augroup
.
나는 C라고 쓴 유틸리티를 사용했다 autotab
. 그것은 당신이로드하고 빔 매개 변수의 값을 결정하는 파일의 처음 몇 천 개 라인 분석 shiftwidth
, tabstop
및 expandtab
.
예를 들어을 사용하여 컴파일됩니다 gcc -O autotab.c -o autotab
. Vim과 통합하기위한 지침은 상단의 주석 헤더에 있습니다.
Autotab은 상당히 영리하지만, 특히 다른 들여 쓰기 스타일을 사용하여 일관성이 유지되지 않아서 때때로 혼란 스러울 수 있습니다.
파일이 들여 쓰기에 탭 또는 공백과 탭의 조합을 사용하는 경우 Autotab은 주석과 같이 연속적인 선에 걸쳐 내부 요소의 정렬과 같은 요소를 고려하여 사용중인 탭 크기를 알아냅니다.
이 언어는 다양한 프로그래밍 언어에서 작동하며 명백한 빈 줄은 말할 것도없고 C 전처리 지시문, C 문 레이블과 같이 들여 쓰기 증분에 따르지 않는 "대역 외"요소를 용서합니다.