Vim inoremap для определенных типов файлов

Я добавил несколько простых команд inoremap в мой .vimrc чтобы помочь с выполнением парсеров и скобок, но я хочу, чтобы они обращались к php-файлам.

  inoremap ( ()<Esc>i inoremap { {<CR>}<Esc>ko inoremap <? <?php ?><Esc><Left>i 

Как установить эти команды для активации только тогда, когда я редактирую файл .php?

Использовать autocmd FileType :

 autocmd FileType php,c,java inoremap ( ()<Esc>i 

Вам нужно сделать 2 вещи:

  • создайте локальное отображение в конкретном буфере с помощью опции <buffer> для inoremap .
  • загрузите сопоставления только для определенного типа файла.

Это можно сделать с помощью автокоманды в вашем .vimrc например:

 autocmd FileType php inoremap <buffer> ( ()<Esc>i 

Другой способ – создать плагин filetype. (подробнее см :h ftplugin )

Простым примером является создание файла с именем ~/.vim/after/ftplugin/php.vim и размещение ваших отображений внутри так:

 inoremap <buffer> ( ()<Esc>i inoremap <buffer> { {<CR>}<Esc>ko inoremap <buffer> <? <?php ?><Esc><Left>i 

Я лично больше склоняюсь к подходу ftplugin, но наличие всего в вашем файле .vimrc может быть приятным.

поместите их в этот файл

 ~/.vim/ftplugin/php.vim 

Добавьте их в файл ftplugin в каталоге after:

 ~/.vim/after/ftplugin/php.vim 

Дополнительная информация в этом ответе .

Изменить: этот файл, а может быть, и каталог, по умолчанию не будет. Возможно, вам придется это сделать, если вы этого не увидите.

Там может быть лучший способ сделать это, но это должно работать:

 autocmd FileType php call Inoremaps() fu! Inoremaps() inoremap ... endfu