Vim inoremap for specific filetypes
You need to do 2 things:
- create a mapping local to a specific buffer by using the
<buffer>
option forinoremap
. - load the mappings for just a specific filetype.
This can be done via an autocommand in your .vimrc
like so:
autocmd FileType php inoremap <buffer> ( ()<Esc>i
The other way option is by creating a filetype plugin. (see :h ftplugin
for more details)
A simple example is do create a file named, ~/.vim/after/ftplugin/php.vim
and place your mappings inside like so:
inoremap <buffer> ( ()<Esc>i
inoremap <buffer> { {<CR>}<Esc>ko
inoremap <buffer> <? <?php ?><Esc><Left>i
I personally lean more towards the ftplugin approach but having a everything in your .vimrc
file can be nice.
Use autocmd FileType
:
autocmd FileType php,c,java inoremap ( ()<Esc>i