Best way to organize filetype settings in .vim and .vimrc?

Posted by dimatura on Stack Overflow See other posts from Stack Overflow or by dimatura
Published on 2010-05-22T21:05:26Z Indexed on 2010/05/22 21:10 UTC
Read the original article Hit count: 337

Filed under:
|
|
|
|

I'm going through my vim dotfiles to tidy them up. I've noticed that through time I've added various filetype specific settings in various inconsistent ways. Let's suppose I'm customizing for Python:

  • au BufRead,BufNewfFile *.py (do something). I don't like this because some Python files might not have the .py termination.

  • au FileType python (do something). This seems a better option because it doesn't depend on the file having the .py termination. The drawback is that Vim doesn't know about some filetypes. I can make Vim recognize additional filetypes, but I also have various inconsistent ways of doing it: a .vim/filetype.vim file, another in .vim/after/filetype.vim and various set filetype commands in .vimrc.

  • Add a .vim/ftplugin/python.vim file with filetype specific settings. I understand the $VIMRUNTIME/ftplugin/python.vim can override whatever settings I make here. One problem is that I'm not sure how this interacts with .vim/filetype.vim and .vim/after/filetype.vim.

  • Add a .vim/after/ftplugin/python.vim. I understand that this is loaded after $VIMRUNTIME/ftplugin/python.vim so it can overwrite settings from there. As in the previous method I'm not sure how it interacts with the filetype.vim files.

So I have at least four ways of doing this, not mentioning syntax files and filetype-specific plugins. It seems to me the best way to do this is to put my filetype specific settings in after/ftplugin so they don't get overwritten, and filetypes.vim in after for the same reason.

However, before I proceed I'd like to ask if anyone has suggestions about the best way to deal with filetype specific settings.

© Stack Overflow or respective owner

Related posts about vim

Related posts about vimrc