我正在通过我的vim dotfiles来整理它们。 我注意到,通过时间我已经以各种不一致的方式添加了各种文件types的具体设置。 假设我正在为Python定制: au BufRead,BufNewFile *.py (do something) 。 我不喜欢这个,因为一些Python文件可能没有.py终止。 au FileType python (do something) 。 这似乎是一个更好的select,因为它不依赖于具有.py终止的文件。 缺点是Vim不知道一些文件types。 我可以让Vim识别附加的文件types,但是我也有各种不一致的方法: .vim/filetype.vim文件,另外一个在.vim/after/filetype.vim以及.vimrc各种set filetype命令。 添加一个.vim/ftplugin/python.vim文件,具有文件types特定的设置。 我知道$VIMRUNTIME/ftplugin/python.vim可以覆盖我在这里设置的任何设置。 一个问题是,我不知道这是如何与.vim/filetype.vim和.vim/after/filetype.vim交互。 添加一个.vim/after/ftplugin/python.vim 。 我知道这是$VIMRUNTIME/ftplugin/python.vim之后加载,所以它可以覆盖那里的设置。 和前面的方法一样,我不确定它如何与filetype.vim文件交互。 所以我至less有四种方法来做这个,而不是提到语法文件和文件types特定的插件。 在我看来,最好的办法是将我的文件types特定的设置放在after/ftplugin这样它们不会被覆盖,而filetypes.vim也会出于同样的原因。 但是,在我继续之前,我想问问任何人是否有处理文件types特定设置的最佳方法的build议。