Quelle est la différence entre `filetype plugin indent on` et` filetype indent on`?

39

Je vois une de ces deux lignes dans les .vimrcfichiers. Celui-ci semble être le plus commun:

filetype plugin indent on

Mais en quoi diffère-t-il de cette ligne:

filetype indent on

J'ai trouvé de la documentation pour ce dernier , mais je suis toujours confus.

Flimm
la source
2
astuce latérale: vous pouvez faire :filetypepour afficher les paramètres de type de fichier.
wisbucky

Réponses:

48

filetype plugin indent on est comme une combinaison de ces commandes:

filetype on
filetype plugin on
filetype indent on

Il active "détection", "plugin" et "indent" à la fois. Vous pouvez vérifier par vous-même en lisant :help :filetype-overview.

Détection

Que fait la "détection" de type de fichier? De la docs:

Chaque fois qu'un fichier nouveau ou existant est édité, Vim essaiera de reconnaître le type du fichier et de définir l'option 'type de fichier'. Cela déclenchera l'événement FileType, qui peut être utilisé pour définir la coloration syntaxique, les options, etc.

C'est moins déroutant si vous réalisez que la filetypecommande est distincte de l' filetypeoption. (La commande :filetype..., l'option: :set filetype...)

Brancher

Que fait la partie "plugin"? De la docs:

Cela charge en fait le fichier "ftplugin.vim" dans 'runtimepath'.

Le résultat est que lorsqu'un fichier est édité, son fichier de plug-in est chargé (s'il en existe un pour le type de fichier détecté).

Le fichier en cours de chargement n'est pas nécessairement nommé ftplugin.vim, il peut s'agir ftplugin/html_example.vimpar exemple.

Retrait

Que fait la partie "retrait"? De la docs:

Cela charge en fait le fichier "indent.vim" dans 'runtimepath'.

Le résultat est que lorsqu'un fichier est édité, son fichier d'indent est chargé (s'il en existe un pour le type de fichier détecté). indent-expression

De nouveau, le fichier ne peut pas être nommé indent.vim, il pourrait l'être indent/html_example.vimpar exemple.

Flimm
la source
1
pour que ce soit clair, le nom du fichier doit correspondre au type de fichier pour lequel il va être activé, par exemple, soit <type>/foobar.vim(un sous-répertoire par type de fichier) <type>_foobar.vimou simplement <type>.vimoù <type> correspond au type de fichier actuel
Christian Brabandt