0

私がこれを行う場合:

:vimgrep /do_action\([ ]?'init'/ **/*.php

私は得る

E54: Unmatched \(

しかし、テキストが一致するファイルがあることは知っています。なんで?

また、誰かがcmd + lのキーマッピングを作成して、この検索が「init」をカーソルの下の単語に置き換えて開始するように助けてくれれば、非常にありがたいです。これは、さまざまなソースから可能であると理解しています。

4

2 に答える 2

2

(あなたはそれに一致するために脱出する必要はありません。?ただし、前の0〜1個のアイテムに一致させるにはエスケープする必要があります。試す:

:vimgrep /do_action([ ]\?'init'/ **/*.php
于 2012-10-17T01:43:08.870 に答える
2

kevの答えに基づいて、ここにマッピングがあります。

nnoremap <D-i> :vimgrep //do_action([ ]\?'<c-r>=expand('<cword>')<cr>'/ **/*.php<cr>

ただし、マッピングでコマンドキーを使用しないことをお勧めします。これは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>

ごちゃごちゃしてすみません。

于 2012-10-17T05:46:21.883 に答える