Как Vim объявляет тип файла для Js или других типов

#vim #neovim

#vim #neovim

Вопрос:

Для создания моего собственного фрагмента js Vim не может использовать js в качестве типа для создания моего фрагмента.

 autocmd FileType js inoremap ,f ()...
 

Как мне выбрать правильный тип файла Vim?

Комментарии:

1. learnvimscriptthehardway.stevelosh.com/chapters/…

Ответ №1:

Как показано в статье, на которую дана ссылка в комментариях, вы можете сделать это с помощью autocmd в вашем vimrc. Однако я считаю, что вместо этого может быть проще использовать структуру пути выполнения vim для установки настроек, зависящих от типа файла.

TL; DR

Введите конкретные команды для вашего типа файла, такие как inoremap ,f ()... in ~/.vim/after/ftplugin/javascript.vim . Если какой-либо из этих каталогов не существует, создайте их. Вы можете делать аналогичные вещи для других языков (например, вставлять привязки html ~/.vim/after/ftplugin/html.vim и т. Д.).

Объяснение

Путь выполнения vim — это именно то место, где vim ищет файлы конфигурации и связанные с ними вещи при запуске (точно так же, как он читает ~/.vimrc ). Сначала он прочитает некоторые общесистемные данные /etc , а затем прочитает содержимое ~/.vim . after Каталог, как следует из названия, будет считан после других настроек, и хотя, вероятно, нет необходимости вводить такие вещи after , это не повредит (это гарантирует, что он не будет перезаписан общесистемной конфигурацией). Внутри after находится ftplugin каталог, в который будет отправляться конфигурация, зависящая от типа файла. Вы также можете поместить ftplugin каталог напрямую ~/.vim , и он будет делать то же самое (за исключением того, что он будет прочитан раньше. Файлы, которые вы помещаете в этот каталог, будут работать аналогично тому, как будет работать autocmd. Я просто предпочитаю делать это таким образом, потому что я нахожу это более аккуратным, чем иметь кучу autocmd в моем vimrc. Для получения более подробной информации о пути выполнения vim и о том, как вы можете его использовать, посмотрите это видео. Все дело не в пути выполнения, но там есть очень хорошее объяснение.

Конечно, вы все равно можете использовать autocmds, если хотите (и я думаю, что ваша единственная проблема заключается в том, что ваш autocmd должен указывать Filetype javascript вместо Filetype js ).

Комментарии:

1. Кстати, сопоставление должно быть локальным в буфере.