特定文件类型的Vim inoremap

时间:2012-01-11 18:56:47

标签: php vim code-completion

我在inoremap添加了一些简单的.vimrc命令来帮助完成parens和括号,但我只想让它们应用于php文件。

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

如何将这些命令设置为仅在我编辑.php文件时处于活动状态?

5 个答案:

答案 0 :(得分:13)

你需要做两件事:

  • 使用<buffer>的{​​{1}}选项创建特定缓冲区的本地映射。
  • 仅为特定文件类型加载映射。

这可以通过inoremap中的自动命令完成,如下所示:

.vimrc

另一种方法是通过创建文件类型插件。 (有关详细信息,请参阅autocmd FileType php inoremap <buffer> ( ()<Esc>i

一个简单的例子就是创建一个名为:h ftplugin的文件,并将映射放在里面:

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

我个人更倾向于使用ftplugin方法,但在inoremap <buffer> ( ()<Esc>i inoremap <buffer> { {<CR>}<Esc>ko inoremap <buffer> <? <?php ?><Esc><Left>i 文件中包含所有内容可能会很好。

答案 1 :(得分:7)

使用autocmd FileType

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

答案 2 :(得分:5)

将它们放在此文件中

~/.vim/ftplugin/php.vim

答案 3 :(得分:1)

将它们添加到after目录中的ftplugin文件:

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

this answer中的更多信息。

编辑:默认情况下,此文件甚至可能是目录。如果你在那里看不到它,你可能必须这样做。

答案 4 :(得分:0)

可能有更好的方法,但这应该有效:

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