Select 如何使用vimgrep对vim高亮度的工作进行grep?
我已经安装了vimgrep插件,在vim内部,在正常模式下,我可以键入: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 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>