이 질문에 대한 대답 에 따라 vim에서 modelines를 사용하여 일부 파일에서 파일 형식 감지를 시도하고 있습니다.
예를 들어, 파일 이름이 맨 앞에 gitconfig
(Leading이 없음에 유의하십시오 .
) 다음 줄이 있습니다.
# vim: set filetype=gitconfig :
modeline
내 시스템에서 활성화되어 있습니다. 그러나 vim에서 파일을 열면 예상 보다을 set filetype?
반환합니다 .conf
gitconfig
내 vim 구성의 다른 부분 (예 : filetype.vim)이이 이상한 동작을 일으킬 수 있습니까?
댓글에 대한 답변으로 수정 :
set compatible?
보고 nocompatible
set modeline?
보고 modeline
verbose set filetype?
보고:
filetype=conf
Last set from /usr/share/vim/vim73/filetype.vim
시스템 전체 파일 형식 플러그인이 파일 자체에서 설정 한 내용을 재정의하는 이유를 이해할 수 없습니다.
마지막 참고 사항 : 이것은 OSX와 함께 제공되는 Vim 7.3 버전입니다.
동일한 시스템에서 동일한 버전을 사용하는 MacVim 의 최신 버전은 .vimrc
을 set ft?
반환 하면서 예상대로 작동 filetype=gitconfig
합니다.
답변
따라서 일부 파기 후에 vimrc
OSX와 함께 제공 되는 시스템 은 modelines
(후행 ‘s’참고) 변수를 0으로 설정합니다.이 변수는 파일에서 set 명령을 검사하는 행 수를 제어합니다. 내 모델을 0이 아닌 값으로 설정하면 .vimrc
문제가 해결되었습니다.
전체 출력, 궁금한 점 : vim --version
vimrc 시스템을 확인하라는 메시지가 출력되었습니다 .
% vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 24 2011 20:00:09)
Compiled by root@apple.com
Normal version without GUI. Features included (+) or not (-):
...
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses
시스템 vimrc를 보면 :
% cat /usr/share/vim/vimrc
" Configuration file for vim
set modelines=0 " CVE-2007-2438
...
modelines
변수로 이끌었습니다 . MacVim이이 시스템 파일을 제공하지 않는 것 같습니다 (아마도 시스템 GVIMRC를 찾으시겠습니까? :help startup
가 명확하지 않음).
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 27 2011 19:46:24)
MacOS X (unix) version
Included patches: 1-260
Compiled by XXXXX
Huge version with MacVim GUI. Features included (+) or not (-):
...
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
system menu file: "$VIMRUNTIME/menu.vim"
fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -p
ipe -DMACOS_X_UNIX -no-cpp-precomp -g -O2 -D_FORTIFY_SOURCE=1
Linking: gcc -L. -Wl,-syslibroot,/Developer/SDKs/MacOSX10.6.sdk -L/usr/local/lib -o V
im -framework Cocoa -framework Carbon -lncurses -liconv -framework Cocoa -fstack-prote
ctor -L/usr/local/lib -L/System/Library/Perl/5.10/darwin-thread-multi-2level/CORE -lperl -lm -
lutil -lc -framework Python -framework Ruby
답변
이것이 macOS 시스템에서 작동하려면 ~ / .vimrc에 몇 가지 설정을 정의해야했습니다.
modeline
modelines=2
여기서 ‘ modeline ‘은 파일 내 설정을 사용할 수 있고 ‘ modelines = # ‘은 vim / vi가 set 명령을 확인할 행 수를 설정합니다.
이러한 매개 변수가 설정되면 파일에서 아래 줄과 같은 구문을 사용하여 설정 매개 변수를 재정의 할 수있었습니다.
# vim: ts=4 sw=4 ai