2

カーソルの下の単語をgrepするキーマッピングを作成しようとしています。これが私がこれまでに持っているものです:

map <Leader>g :grep -r '<C-R><C-W>' ./<CR><CR>:cw<CR>

これで、現在作業しているタイプのファイルのみを検索したいと思います(たとえば、.coffeeファイルをgrepすると、.jsファイルはリストされません)。grepを使用すると、次のことができます(たとえば)。

grep -r --include='*.coffee' 'whatever' ./

特定の拡張子を持つファイルのみを検索します。これを行うには、現在のファイルの拡張子が必要です。では、現在のファイルの拡張子を取得する最も簡単な方法は何ですか?

このタスクを実行するためのより良い方法があれば、それも素晴らしいでしょう。

4

1 に答える 1

3

もちろん、私が諦めてSOについて尋ねた直後に、私はそれを理解します...

map <Leader>g :grep -r --include='*.<C-R>=expand('%:e')<CR>' '<C-R><C-W>' ./<CR><CR>:cw<CR>

Expand()は、現在のバッファーに関するあらゆる種類の情報を返します。詳細については、:help Expand()を確認してください。

この場合、expand('%:e')は現在のファイルの拡張子を返します。

コマンドラインモードでは、<CR> = some_function()<CR>はsome_function()の結果をコマンドラインに挿入します。

于 2012-10-15T22:15:07.257 に答える