[英]Why are Vim filetype options ON when ~/.vimrc is missing but OFF when it is present?
[英]Best way to organize filetype settings in .vim and .vimrc?
我正在检查我的vim点文件,以整理它们。 我注意到,随着时间的流逝,我以各种不一致的方式添加了各种文件类型特定的设置。 假设我正在为Python定制:
au BufRead,BufNewFile *.py (do something)
。 我不喜欢这样,因为某些Python文件可能没有.py终止符。
au FileType python (do something)
。 这似乎是一个更好的选择,因为它不依赖于以.py结尾的文件。 缺点是Vim不了解某些文件类型。 我可以使Vim识别其他文件类型,但是我也有各种不一致的方法: .vim/filetype.vim
文件, .vim/after/filetype.vim
和.vimrc
各种set filetype
命令。
添加具有特定文件类型设置的.vim/ftplugin/python.vim
文件。 我了解$VIMRUNTIME/ftplugin/python.vim
可以覆盖我在此处所做的任何设置。 一个问题是我不确定它如何与.vim/filetype.vim
和.vim/after/filetype.vim
交互。
添加一个.vim/after/ftplugin/python.vim
。 我知道这是在$VIMRUNTIME/ftplugin/python.vim
之后加载的,因此它可以从那里覆盖设置。 与以前的方法一样,我不确定它如何与filetype.vim
文件交互。
因此,我至少有四种方法可以做到这一点,更不用说语法文件和特定于文件类型的插件了。 在我看来,这样做是为了把我的文件类型的特定设置的最佳途径after/ftplugin
,这样它们就不会被覆盖,并且filetypes.vim
在after
出于同样的原因。
但是,在继续之前,我想问一下是否有人对处理文件类型特定设置的最佳方法提出建议。
我将特定于Python的设置存储在$HOME/.vim/ftplugin/python.vim
,因为我没有与$VIMRUNTIME/ftplugin/python.vim
发生冲突。
将这些设置保存在ftplugin
文件中可使我的.vimrc
保持美观和通用,并易于维护(在Vim使用了十多年后,它仍然很大)。
如果您想在Vim发行版中否决 ftplugin
的内容,那么$HOME/.vim/after/ftplugin/python.vim
是您想要的,因为after
此after
将读取它。
同样, $HOME/.vim/filetype.vim
将在$VIMRUNTIME/filetype.vim
之前获取,而$HOME/.vim/after/filetype.vim
将在$HOME/.vim/after/filetype.vim
。
调用:scriptnames
会按照最初获得的顺序列出所有获得的脚本名称。
:help filetype
提供了关于所有这些的非常全面的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.