#vim #neovim
#vim #neovim
Вопрос:
Для создания моего собственного фрагмента js
Vim не может использовать js
в качестве типа для создания моего фрагмента.
autocmd FileType js inoremap ,f ()...
Как мне выбрать правильный тип файла Vim?
Комментарии:
Ответ №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. Кстати, сопоставление должно быть локальным в буфере.