How to manually load an ftplugin after startup in Vim?

Rob picture Rob · Dec 28, 2009 · Viewed 15.9k times · Source

Say I load a .txt file into Vim. Then I want to change the filetype=html but I also want an associated ftplugin loaded. How can I do this?

I've tried stuff like: :set filetype plugin on and :set filtype plugin_name on and also :filetype plugin_name on etc etc., but I can't seem to manually load the ftplugin. Any suggestions?

I've tried :filetype=html and then :filetype plugin on and other combinations to no avail.

EDIT: I was not able to "completely" solve this with any of the answers (but it maybe something individual to my configuration). However, Pierre's answers were pretty darn good so I'm giving him the green check mark.

Answer

Pierre-Antoine LaFayette picture Pierre-Antoine LaFayette · Dec 28, 2009

I'm fairly sure that when you switch a file's type using :set ft=X it will automatically load the associated plugin in your .vim/ftplugin folder. E.g. :set ft=html would load .vim/ftplugin/html.vim where you would load any associated plugins. However BufEnter and BufNew plugin loads associated with html files won't be loaded as setting a new filetype does not trigger these events. So if you have html specific plugins in your .vimrc that are loaded with BufNew or BufEnter you may want to put them in a .vim/ftpluging/html.vim file instead.

You could always add a modeline to your text file that changes the filetype. E.g. <!-- vim: ft=html -->.