I see one of these two lines in .vimrc files. This one seems to be most common:

filetype plugin indent on

But how does it differ from this line:

filetype indent on

I've found documentation for the latter, but I'm still confused.

  • side tip: you can do :filetype to show the filetype settings. – wisbucky Jun 17 at 1:25
up vote 30 down vote accepted

filetype plugin indent on is like a combination of these commands:

filetype on
filetype plugin on
filetype indent on

It turns on "detection", "plugin" and "indent" at once. You can check for yourself by reading :help :filetype-overview.

Detection

What does filetype "detection" do? From the docs:

Each time a new or existing file is edited, Vim will try to recognize the type of the file and set the 'filetype' option. This will trigger the FileType event, which can be used to set the syntax highlighting, set options, etc.

This is less confusing if you realise that the filetype command is distinct from the filetype option. (The command :filetype..., the option: :set filetype...)

Plugin

What does the "plugin" part do? From the docs:

This actually loads the file "ftplugin.vim" in 'runtimepath'.

The result is that when a file is edited its plugin file is loaded (if there is one for the detected filetype).

The file being loaded is not necessarily named ftplugin.vim, it could be ftplugin/html_example.vim for instance.

Indent

What does the "indent" part do? From the docs:

This actually loads the file "indent.vim" in 'runtimepath'.

The result is that when a file is edited its indent file is loaded (if there is one for the detected filetype). indent-expression

Again, the file may not be named indent.vim, it could be named indent/html_example.vim for instance.

  • 1
    to make it clear, the name of the file should correspond to the 'filetype' for which is is going to be activated, e.g. either <type>/foobar.vim (a subdirectory per filetype) or <type>_foobar.vim or simply <type>.vim where <type> corresponds to the actual filetype – Christian Brabandt Nov 7 '16 at 11:10

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.