0

WindowsのGVimのすべてのファイルでNotepad ++ findを複製しようとしています。ディレクトリ内のカーソルの下にある単語を見つけるように見えるvimgrepの次のスクリプトを見つけました

map <F4> :execute "vimgrep /" . expand("<cword>") . "/j /**/*.c " <Bar> cw<CR>

プロジェクトのルートディレクトリで常に検索するように変更しました。しかし、それは機能していません。プロジェクトは「c:\lion」の下にあります

map < F4> :execute "vimgrep /" . expand("<cword>") . "/j {c:\lion\}/**/*.c " <Bar> cw<CR>

次のエラーが表示されます。

"{c:" Illegal file name
Cannot open file "{c:"
4

1 に答える 1

3

をドロップし{...}、コマンドラインで行うように、パスをそのまま挿入します (マッピングは、記録されたマクロにすぎません)。スラッシュを使用する方が簡単です。これらは Windows でも動作します。

:map <F4> :execute "vimgrep /" . expand("<cword>") . "/j C:/lion/**/*.c " <Bar> cw<CR>

たぶん、あなたは混乱してきた:execute. c_CTRL-R_CTRL-W現在の単語を挿入する別の方法 ( を使用) があり、これを回避できます。

:map <F4> :vimgrep /<C-r><C-w>/j C:/lion/**/*.c <Bar> cw<CR>

また、使用する必要があります:noremap。これにより、マッピングが再マッピングと再帰の影響を受けなくなります。

于 2014-03-19T14:05:12.073 に答える