如何在vim中显示搜索的所有结果
使用记事本++搜索字符串时,新窗口将打开并显示“查找” 结果。我想在vim中使用此功能。在谷歌搜索之后,我发现了一些建议:如何在vim中显示搜索的所有结果,vim,Vim,使用记事本++搜索字符串时,新窗口将打开并显示“查找” 结果。我想在vim中使用此功能。在谷歌搜索之后,我发现了一些建议: vimgrep /<pattern>/ % copen vimgrep/% 科本 可以创建执行这两个命令的映射。Pattern应该是当前单词:may是vim中的cword关键字?我建议使用lvimgrep(因此您可以使用quickfix for:make) 等等 :全局更有用: :g/foo/ join " join all lines con
vimgrep /<pattern>/ %
copen
vimgrep/%
科本
可以创建执行这两个命令的映射。Pattern应该是当前单词:may是vim中的cword关键字?我建议使用lvimgrep(因此您可以使用quickfix for:make)
等等
:全局更有用:
:g/foo/ join " join all lines containing foo
等等。这个要求其实很简单。但要获得用户输入的模式,您需要一个函数
function! FindAll()
call inputsave()
let p = input('Enter pattern:')
call inputrestore()
execute 'vimgrep "'.p.'" % |copen'
endfunction
如果要进行映射,请添加以下行:
nnoremap <F8> :call FindAll()<cr>
nnoremap:callfindall()
但正如我在你的问题下评论的那样<代码>%对于未指定的缓冲区可能不起作用 这两个命令可以缩短并链接:
:vim foo%|co
。您可以像这样将单词拉到光标下面::vim%|co
下面是一个快速正常模式映射,可用于在“快速修复”窗口中列出光标下出现的所有单词:
nnoremap <F6> :vimgrep /<C-r><C-w>/j % <bar> cwindow<cr>
nnoremap:vimgrep//j%cwindow
您还可以使用
:il[ist]foo
显示所有出现的foo
的列表,或使用[I
为光标下的单词显示相同的列表
当列表显示时,使用
:{line number}
跳转到相应的行。谢谢帮助。我尝试了,但它给出了错误消息:在处理/home/student/时检测到错误。vimrc:line 30:E488:尾随字符:lopenI使用:number
(或简称:nu
)再加上:g
,这就相当不错了。@PeterRincker我选择的武器会更短::g//#
@这是一个很好的提示。我忘了:#
。谢谢你注意,如果你使用vimgrep…%
,它可能无法在未经修改的缓冲区上工作。非常感谢。我可以用鼠标浏览搜索结果吗?也就是浏览点击|.@VardanHovhannisyan搜索结果以进行鼠标操作..我不确定,当我与vim在一起时,我很少使用鼠标。但我可以在有时间的时候为您检查。对于光标下的单词。在命令行中按
将给出该结果..事实上,他在回答中有这个。@VardanHovhannisyan双击entr快速修复窗口中的y将跳转到这一行。我的中有set mouse=a
。vimrc
function! FindAll()
call inputsave()
let p = input('Enter pattern:')
call inputrestore()
execute 'vimgrep "'.p.'" % |copen'
endfunction
nnoremap <F8> :call FindAll()<cr>
nnoremap <F6> :vimgrep /<C-r><C-w>/j % <bar> cwindow<cr>