在.vim和.vimrc中组织文件types设置的最佳方法是什么?

我正在通过我的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议。

One Solution collect form web for “在.vim和.vimrc中组织文件types设置的最佳方法是什么?”

我将我的Python特有的设置存储在$HOME/.vim/ftplugin/python.vim ,因为我没有做任何与$VIMRUNTIME/ftplugin/python.vim冲突的$VIMRUNTIME/ftplugin/python.vim

将这些设置保存在一个ftplugin文件中,可以让我的.vimrc保持良好的通用性,并且更易于维护(在Vim使用十多年之后,它仍然相当大)。

如果你想控制你的Vim发行版的ftplugin ,那么$HOME/.vim/after/ftplugin/python.vim是你想要的,因为它是afterafter被读取的。

同样, $HOME/.vim/filetype.vim将在$VIMRUNTIME/filetype.vim之前被find,并且在$HOME/.vim/after/filetype.vim之前被提交。

调用:scriptnames脚本名将按照它们的第一个来源的顺序列出所有的脚本名。

:help filetype提供了所有这些相当全面的信息。

  • 在vim正常模式下使用g键
  • 我怎样才能最大化拆分窗口?
  • 我如何使用vimdiff解决冲突?
  • Vim拉出行,然后粘贴它内联
  • 在Vim中撤消closures标签
  • 如何评论Vim的configuration文件:“.vimrc”?
  • 在Mac OS X上更新内置的vim
  • 如何在Vim中注释掉一段Python代码
  • 你如何重新加载所有的vim窗口?
  • vim默认可以使用系统剪贴板吗?
  • VIM:如何去Ubuntu的确切线