Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Select 如何使用vimgrep对vim高亮度的工作进行grep?_Select_Vim_Highlight_Vimgrep - Fatal编程技术网

Select 如何使用vimgrep对vim高亮度的工作进行grep?

Select 如何使用vimgrep对vim高亮度的工作进行grep?,select,vim,highlight,vimgrep,Select,Vim,Highlight,Vimgrep,我已经安装了vimgrep插件,在vim内部,在正常模式下,我可以键入: :vimgrep mywords % 在mywords中搜索当前目录下的文档 但我希望在正常模式下,当我使用gd突出显示一个单词时,或者在视觉模式下使用“viw”选择一个单词时,我使用vimgrep的热键。因此,我添加了我的.vimrc并重新启动vim: vnoremap <F8> :vimgrep expand('<cword>') %<CR> 它对我不起作用,当我把焦点放在一个单

我已经安装了vimgrep插件,在vim内部,在正常模式下,我可以键入:

:vimgrep mywords %
在mywords中搜索当前目录下的文档

但我希望在正常模式下,当我使用gd突出显示一个单词时,或者在视觉模式下使用“viw”选择一个单词时,我使用vimgrep的热键。因此,我添加了我的.vimrc并重新启动vim:

vnoremap <F8> :vimgrep expand('<cword>') %<CR>
它对我不起作用,当我把焦点放在一个单词上并选择它时,我按F8键,在vim中没有响应。如何实现

谢谢

试试看

vnoremap <F8> y:vimgrep "<c-r>"" %<CR> 

推荐阅读:

Vimscript的计算方法与:命令行中键入的Ex命令完全相同。ex中没有变量,因此无法指定它们。以交互方式键入命令时,您可能会使用=插入变量内容:

:vimgrep <C-R>=expand('<cword>')<CR> '%'<CR>
实际上,有一个内置命令用于将当前单词插入命令行::help c_CTRL-R_CTRL-W:

仍然缺少文本的转义:vimgrep搜索正则表达式模式和/分隔符:

vnoremap <F8> y:execute 'vimgrep /\V' . escape(@@, '/\') . '/ %'<CR>
健壮的插件解决方案
现在,如果您还想避免对默认寄存器的破坏,那么它会变得非常复杂。看看我的眼睛;它提供了一个{Visual}映射,正好可以做到这一点。

漂亮的答案:-谢谢,我想知道为什么会有两个符号,而不仅仅是一个符号如果你删除了剩下的外部符号,它会插入register的内容最后一次delete/yank的内容。这就是为什么有两个
:vimgrep <C-R><C-W>
vnoremap <F8> :<C-u>vimgrep <C-r><C-w> %<CR>
vnoremap <F8> y:vimgrep /<C-r>"/ %<CR>
vnoremap <F8> y:execute 'vimgrep /\V' . escape(@@, '/\') . '/ %'<CR>