2

我正在尝试制作一个键映射,它将 grep 光标下的单词。这是我到目前为止所拥有的:

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

我希望它只查找我当前正在处理的类型的文件(例如,在 .coffee 文件中进行 grepping 不会列出 .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 回答