В чем разница между `отступом плагина filetype on` и` отступом filetype on`?

39

Я вижу одну из этих двух строк в .vimrcфайлах. Этот, кажется, самый распространенный:

filetype plugin indent on

Но как это отличается от этой линии:

filetype indent on

Я нашел документацию для последнего , но я все еще в замешательстве.

Флимм
источник
2
Совет: вы можете сделать, :filetypeчтобы показать настройки типа файла.
wisbucky

Ответы:

48

filetype plugin indent on это как комбинация этих команд:

filetype on
filetype plugin on
filetype indent on

Включает «обнаружение», «плагин» и «отступ» одновременно. Вы можете проверить сами, прочитав :help :filetype-overview.

обнаружение

Что делает тип файла "обнаружение"? Из документов:

Каждый раз, когда новый или существующий файл редактируется, Vim будет пытаться распознать тип файла и установить опцию 'filetype'. Это вызовет событие FileType, которое можно использовать для установки подсветки синтаксиса, настройки параметров и т. Д.

Это менее запутанно, если вы понимаете, что filetypeкоманда отличается от filetypeопции. (Команда :filetype..., опция: :set filetype...)

Plugin

Что делает часть «плагин»? Из документов:

Это фактически загружает файл «ftplugin.vim» в «runtimepath».

В результате при редактировании файла загружается его файл плагина (если он есть для обнаруженного типа файла).

Загружаемый файл не обязательно имеет имя ftplugin.vim, это может быть, ftplugin/html_example.vimнапример.

индент

Что делает часть «отступ»? Из документов:

Это фактически загружает файл «indent.vim» в «runtimepath».

В результате при редактировании файла загружается его файл отступа (если он существует для обнаруженного типа файла). Отступ выражение

Опять же, файл не может быть назван indent.vim, он может быть назван, indent/html_example.vimнапример.

Флимм
источник
1
чтобы прояснить это, имя файла должно соответствовать «типу файла», для которого он будет активирован, например, либо <type>/foobar.vim(подкаталог на тип файла), <type>_foobar.vimлибо просто <type>.vimгде <тип> соответствует фактическому
типу файла