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

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).

If you want to overrule what the ftplugins with your Vim distribution set up, then $HOME/.vim/after/ftplugin/python.vim is what you want, as it is read after these.

Similarly $HOME/.vim/filetype.vim will be sourced before $VIMRUNTIME/filetype.vim and that in turn will be sourced before $HOME/.vim/after/filetype.vim.

Invoking :scriptnames will list all sourced script names, in the order they were first sourced.

:help filetype provides pretty comprehensive information on all of this.

Leave a Comment