.c
文件时,我希望缩进为4个空格。在.html
文件中,我想要(必须)使用选项卡。 我该如何实现?
#1 楼
最好的方法是将这些设置放在~/.vim/after/ftplugin/<filetype>.vim
中。对于HTML(假设要使用4个字符宽的标签):
~/.vim/after/ftplugin/html.vim
setlocal shiftwidth=4
setlocal softtabstop=4
setlocal noexpandtab
使用一个ftplugin优先使用自动命令,因为Vim本身已经进行了文件类型检查并且已经尝试获取足够的ftplugin,因此没有理由强制进行更多检查并重新实现该转轮。
假设您在
filetype plugin on
中包含vimrc
(应该这样做),Vim会尝试检测您编辑的文件的文件类型,一旦找到正确的文件类型并为缓冲区设置了该文件类型,请尝试获取源文件。在以下标准位置中对应的ftplugin:$VIMRUNTIME/ftplugin/html.vim
~/.vim/ftplugin/html.vim
~/.vim/ftplugin/after/html.vim
所有这些都会自动发生,因此,如果您的文件类型被Vim识别,则绝对没有理由添加任何文件类型检测逻辑:只需将您的设置添加到正确的ftplugin即可。
#2 楼
您可以在.vimrc
中使用自动命令来执行此操作。例如,我有一个函数html_like_mode
,它可以设置各种用于编辑HTML文件的内容。在我的.vimrc
中,我有:au BufNewFile,BufRead *.html call s:html_like_mode()
该文件扩展名是关闭的。如果启用了文件类型,也可以取消该文件类型:
au FileType perl setlocal equalprg=perltidy
如您所见,您可以在其中执行任何命令。因此,您可以轻松地为* .c文件执行
setlocal shiftwidth 4
。 #3 楼
augroup
允许您将相关的自动命令分组为命名组。 (请参阅此处以了解有关自动命令组的信息。)我们使用augroup
s将自动命令添加到~/.vimrc
中,这种方式不会在每次获取源代码时都添加重复项。评论
如果您能解释一下它的作用和设置方式,那将很有用,并不是每个人都知道;)
–赛斯
15年2月3日在17:01
#4 楼
二手的autocmd和FileTypeautocmd FileType html setlocal shiftwidth=4 tabstop=4
评论
我需要以某种方式激活ftplugin还是创建文件自动激活它?
–DeltaLima
15年2月3日在17:37
确保在vimrc中缩进了文件类型插件。
– romainl
15年2月3日在17:38
@DeltaLima vim具有检查设置的路径。只要将文件类型插件设置为开,vim的路径将在其路径中包含ftplugin /
–davidlowryduda
15年2月3日在20:24
@DeltaLima,请参阅我的编辑。
– romainl
15年2月3日在20:49