【发布时间】:2012-01-11 18:56:46
【问题描述】:
我在.vimrc 中添加了一些简单的inoremap 命令来帮助完成括号和括号,但我只希望它们适用于php 文件。
inoremap ( ()<Esc>i
inoremap { {<CR>}<Esc>ko
inoremap <? <?php ?><Esc><Left>i
如何将这些命令设置为仅在我编辑 .php 文件时激活?
【问题讨论】:
标签: php vim code-completion
我在.vimrc 中添加了一些简单的inoremap 命令来帮助完成括号和括号,但我只希望它们适用于php 文件。
inoremap ( ()<Esc>i
inoremap { {<CR>}<Esc>ko
inoremap <? <?php ?><Esc><Left>i
如何将这些命令设置为仅在我编辑 .php 文件时激活?
【问题讨论】:
标签: php vim code-completion
你需要做两件事:
inoremap 的<buffer> 选项创建本地到特定缓冲区的映射。这可以通过.vimrc 中的自动命令来完成,如下所示:
autocmd FileType php inoremap <buffer> ( ()<Esc>i
另一种方法是创建一个文件类型插件。 (详情请见:h ftplugin)
一个简单的例子是创建一个名为 ~/.vim/after/ftplugin/php.vim 的文件,并将您的映射放在里面,如下所示:
inoremap <buffer> ( ()<Esc>i
inoremap <buffer> { {<CR>}<Esc>ko
inoremap <buffer> <? <?php ?><Esc><Left>i
我个人更倾向于使用 ftplugin 方法,但在 .vimrc 文件中包含所有内容可能会很好。
【讨论】:
<buffer>。
: 例如时,您会收到 E488 错误。 autocmd FileType php :inoremap <buffer> ( ()<Esc>i
使用autocmd FileType:
autocmd FileType php,c,java inoremap ( ()<Esc>i
【讨论】:
将它们放在这个文件中
~/.vim/ftplugin/php.vim
【讨论】:
可能有更好的方法,但这应该可行:
autocmd FileType php call Inoremaps()
fu! Inoremaps()
inoremap ...
endfu
【讨论】:
将它们添加到after目录下的ftplugin文件中:
~/.vim/after/ftplugin/php.vim
this answer 中的更多信息。
编辑:默认情况下,该文件,甚至目录,都不会存在。如果你在那里看不到它,你可能不得不去做。
【讨论】: