> au BufRead,BufNewFile * .py(do something)。我不喜欢这样,因为一些Python文件可能没有.py终止。@H_403_2@> au FileType python(do something)。这似乎是一个更好的选择,因为它不依赖于具有.py终止的文件。缺点是Vim不知道一些文件类型。我可以让Vim识别额外的文件类型,但是我也有各种不一致的方式:一个.vim / filetype.vim文件,另一个在.vim / after / filetype.vim和.vimrc中的各种设置filetype命令。@H_403_2@>添加一个具有文件类型特定设置的.vim / ftplugin / python.vim文件。我理解$ VIMRUNTIME / ftplugin / python.vim可以覆盖我在这里设置。一个问题是,我不知道如何与.vim / filetype.vim和.vim / after / filetype.vim进行交互。@H_403_2@>添加.vim / after / ftplugin / python.vim。我理解这是加载后$ VIMRUNTIME / ftplugin / python.vim,所以它可以覆盖设置从那里。正如在上一个方法,我不知道它如何与filetype.vim文件交互。
所以我有至少四种方法这样做,没有提到语法文件和文件类型特定的插件。在我看来,最好的方法做到这一点是把我的filetype特定的设置在/ ftplugin后,所以他们不会被覆盖,和filetypes.vim在后的同样的原因。
但是,在我继续之前,我想询问是否有人有关于处理文件类型特定设置的最佳方式的建议。
$HOME/.vim/ftplugin/python.vim
,因为我没有什么与
$VIMRUNTIME/ftplugin/python.vim
冲突。
保持这些设置在一个ftplugin
文件保持my .vimrc
漂亮和通用和更容易维护(在经过十多年的Vim使用仍然相当大)。
如果你想overrule什么ftplugins与您的Vim分布设置,然后$ HOME / .vim / after / ftplugin / python.vim是你想要的,因为它是在这之后读的。
类似地,$ HOME / .vim / filetype.vim将在$ VIMRUNTIME / filetype.vim之前获取,并且将在$ HOME / .vim / after / filetype.vim之前来源。
调用:scriptnames
将按照它们第一次来源的顺序列出所有来源的脚本名称。
:help filetype
提供了有关所有这一切的相当全面的信息。