特定文件类型的Vim inoremap

Cam*_*ues 7 php vim code-completion

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

 inoremap ( ()<Esc>i
 inoremap { {<CR>}<Esc>ko
 inoremap <? <?php ?><Esc><Left>i
Run Code Online (Sandbox Code Playgroud)

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

Pet*_*ker 13

你需要做两件事:

  • 使用<buffer>选项for 创建特定缓冲区的本地映射inoremap.
  • 仅为特定文件类型加载映射.

这可以通过你.vimrc喜欢的自动命令完成:

autocmd FileType php inoremap <buffer> ( ()<Esc>i
Run Code Online (Sandbox Code Playgroud)

另一种方法是通过创建文件类型插件.(:h ftplugin详情请见)

一个简单的例子是创建一个名为的文件,~/.vim/after/ftplugin/php.vim并将映射放在里面:

inoremap <buffer> ( ()<Esc>i
inoremap <buffer> { {<CR>}<Esc>ko
inoremap <buffer> <? <?php ?><Esc><Left>i
Run Code Online (Sandbox Code Playgroud)

我个人更倾向于ftplugin方法,但在.vimrc文件中包含所有内容都可以.


Mic*_*ski 9

用途autocmd FileType:

autocmd FileType php,c,java inoremap ( ()<Esc>i
Run Code Online (Sandbox Code Playgroud)


ali*_*iva 5

把它们放在这个文件中

~/.vim/ftplugin/php.vim
Run Code Online (Sandbox Code Playgroud)