dim*_*ura 45 vim file-type ftplugin
我正在浏览我的vim dotfiles来整理它们.我注意到,随着时间的推移,我以各种不一致的方式添加了各种文件类型特定的设置.让我们假设我正在为Python定制:
au BufRead,BufNewFile *.py (do something).我不喜欢这个,因为一些Python文件可能没有.py终止.
au FileType python (do something).这似乎是一个更好的选择,因为它不依赖于具有.py终止的文件.缺点是Vim不知道某些文件类型.我可以让Vim识别其他文件类型,但我也有各种不一致的方法:.vim/filetype.vim文件,另一个in .vim/after/filetype.vim和各种set filetype命令.vimrc.
添加.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出于同样的原因.
但是,在我继续之前,我想询问是否有人有关于处理文件类型特定设置的最佳方法的建议.
Joh*_*web 66
I store my Python-specific settings is in $HOME/.vim/ftplugin/python.vim, since I do nothing to conflict with $VIMRUNTIME/ftplugin/python.vim.
Keeping these settings in an ftplugin file keeps my .vimrc nice and generic and easier to maintain (it's still pretty big after over ten years of Vim usage).
如果你想推翻什么,ftplugin用你的vim分布S成立,那么$HOME/.vim/after/ftplugin/python.vim是你想要的,因为它是阅读after这些.
类似地$HOME/.vim/filetype.vim将在之前采购$VIMRUNTIME/filetype.vim,反过来将在之前采购$HOME/.vim/after/filetype.vim.
调用:scriptnames将按照首次采购的顺序列出所有源脚本名称.
:help filetype 提供有关所有这些的非常全面的信息.