我發現了VIM搜索的一個很好的功能,即列出所有搜索結果和相應的行號。管道搜索結果到VIM中的其他選項卡/窗口/緩衝區
例如:
:g/for.*bar/#
問:是否有一個「簡單」的方法來管/把這個到另一個窗口/標籤/緩衝?
乾杯!
我發現了VIM搜索的一個很好的功能,即列出所有搜索結果和相應的行號。管道搜索結果到VIM中的其他選項卡/窗口/緩衝區
例如:
:g/for.*bar/#
問:是否有一個「簡單」的方法來管/把這個到另一個窗口/標籤/緩衝?
乾杯!
我不知道如何管輸出:g/for.*bar/#
到一個新的緩衝區,但我知道如何使用vimgrep
獲得很多相同的結果。
嘗試:
vimgrep "for.*bar" %
:copen
現在你有所有搜索結果的緩衝區,你可以在它們之間有:cn
和:cp
甚至導航。
看看:help quickfix
看起來像這個,我正在尋找。你可以如此善意地解釋'%'的含義嗎?究竟是什麼意思是'copen',我的意思是,vimgrep的結果在哪裏? – ezdazuzena
@ezdazuzena當然在命令模式下''''''''可以替換爲當前文件的路徑。 – Benj
謝謝。關於我的問題的第二部分,我在這裏找到了答案:http://blogs.gurulabs.com/stuart/archives/2006/08/vimgrep-copen.html – ezdazuzena
我不知道如何將直接輸出重定向到一個緩衝,但您可以使用redir
將其發送到一個文件:
:redir > file
:g/for.*bar/#
:redir END
或一個寄存器:
:redir @a
:g/for.*bar/#
:redir END
有關更多信息,請參見:help :redir
。
...然後寄存器可以被放入::put!一個'變成一個新的緩衝區。 –
稱讚接受的答案:我做了一個映射,直接打開上次搜索與\ SS(節目搜索)quickfix窗口上,將其添加到您的.vimrc:
" show last search results on the quickfix window at windows bottom
nnoremap <silent><leader>ss :vimgrep /<C-r>\// % <CR> :botright copen <CR>
BR
您的意思是「將此列表和數字放入新緩衝區中」? – romainl
@romaini:的確如此。例如進入拆分窗口..要複製的東西,滾動。現在我得到的名單,但當我移動它「消失」。 – ezdazuzena