如果我这样做:
:vimgrep /do_action\([ ]?'init'/ **/*.php
我明白了
E54: Unmatched \(
但我知道有些文件具有匹配的文本。为什么?
如果有人可以帮助我为 cmd+l 创建一个键映射,我也将非常感激,以便以“init”启动此搜索,用光标下的单词替换,我从各种来源了解到这是可能的。
如果我这样做:
:vimgrep /do_action\([ ]?'init'/ **/*.php
我明白了
E54: Unmatched \(
但我知道有些文件具有匹配的文本。为什么?
如果有人可以帮助我为 cmd+l 创建一个键映射,我也将非常感激,以便以“init”启动此搜索,用光标下的单词替换,我从各种来源了解到这是可能的。
基于kev的答案,这是您的映射:
nnoremap <D-i> :vimgrep //do_action([ ]\?'<c-r>=expand('<cword>')<cr>'/ **/*.php<cr>
但我建议你不要在映射中使用 Command 键:它只在 MacVim 中有效,并且尽可能地寻求可移植性是一个好习惯。
<leader>
钥匙非常适合此类事情。
nnoremap <leader>i :vimgrep //do_action([ ]\?'<c-r>=expand('<cword>')<cr>'/ **/*.php<cr>
见:help c_ctrl-r_=
和:help leader
。
编辑
我在这个上走得太快了。我不仅在 kev 对您的命令的修改中添加了不必要的麻烦(愚蠢//
),而且我没有注意到它可以被简化。这个是经过测试和工作的:
nnoremap <leader>i :vim do_action(\s*'<c-r>=expand('<cword>')<cr> **/*.php<cr>
对不起,混乱。
你不需要逃跑(
来匹配它。但是您需要转义?
以匹配 0~1 上一个项目。尝试:
:vimgrep /do_action([ ]\?'init'/ **/*.php