使用記事本++搜索字符串時,將打開新窗口並顯示查找 結果。我想在vim中使用這個功能。谷歌搜索後,我發現了一些建議:如何在vim中顯示搜索的所有結果
vimgrep /<pattern>/ %
copen
這是可能的創建映射,執行這兩個命令。模式應該是當前的詞語:可能是vim中的cword關鍵字?
使用記事本++搜索字符串時,將打開新窗口並顯示查找 結果。我想在vim中使用這個功能。谷歌搜索後,我發現了一些建議:如何在vim中顯示搜索的所有結果
vimgrep /<pattern>/ %
copen
這是可能的創建映射,執行這兩個命令。模式應該是當前的詞語:可能是vim中的cword關鍵字?
要求實際上是很容易。但要獲得用戶輸入模式,您需要一個功能。
function! FindAll()
call inputsave()
let p = input('Enter pattern:')
call inputrestore()
execute 'vimgrep "'.p.'" % |copen'
endfunction
,如果你想有一個映射,加入這一行:
nnoremap <F8> :call FindAll()<cr>
但我你的問題下評論。 %
可能不適用於未知的緩衝區。
我建議lvimgrep(這樣你就可以使用的quickfix:讓)
:nnoremap <F6> :lvimgrep /\M\<<C-R><C-W>\m\>/ **/*.[ch]pp **/Makefile | lopen<CR>
此外,如果你只是想在當前文件中找到:
:g/<pattern>/
將調用「打印'(默認命令)在每個匹配行上。
:v// " non-matching lines
:g//-1 " lines preceding the matching line
:g//-1,+1 " lines around the matching line
等
:全球是更爲有用:
:g/foo/ join " join all lines containing foo
等
感謝您的幫助。我嘗試了,但它給出了錯誤信息: 處理/home/student/.vimrc時發現錯誤: line 30: E488:尾隨字符:lopen
我使用':number'(或':nu'簡稱)與':g'相結合,相當不錯。 – 2013-04-09 16:41:29
@PeterRincker我選擇的武器會更短:':g //#' – sehe 2013-04-09 17:48:50
這兩個命令可以縮短和鏈接::vim foo %|co
。你可以像這樣在光標下面拉字::vim <C-r><C-w> %|co
。
這裏是一個快速正常模式映射,您可以使用列出的單詞的所有出現在quickfix窗口的光標下:
nnoremap <F6> :vimgrep /<C-r><C-w>/j % <bar> cwindow<cr>
您還可以使用:il[ist] foo
顯示列表在foo
或[I
的所有匹配項中,爲您的光標下的單詞顯示相同的列表。
當列表顯示時,使用:{line number}
跳轉到相應的行。
請注意,如果您執行'vimgrep ...%',它可能無法在unamed緩衝區上工作。 – Kent 2013-04-09 15:40:42