[英]How to print the output of a command to a new window in vim
當我執行這樣的命令時:
:g/FIXME/p
它在我編寫代碼的部分中打印匹配的行。 我想更多地處理此命令的輸出,因此我在gvim中手動選擇輸出文本,打開一個新的拆分窗口並手動粘貼。 但是,如果輸出太大,我將無法輕松復制和粘貼。
有沒有一種方法可以將命令輸出自動推入新窗口? 即我想做的是這樣的:
:g/FIXME/print_to_new_window
如果要在緩沖區中找到所有匹配的行並將其粘貼到新窗口/緩沖區中,可以執行以下操作:
:let @a=''|g/FIXME/y A
該行將所有匹配的行(包含FIXME
)保存在寄存器a
。
現在,你可以打開一個窗口,如:vnew
然后粘貼從內容a
"ap
好吧,如果您真的要保存命令的輸出,則必須使用:redir
命令,查看幫助( :h :redir
)以了解詳細信息,這已得到很好的解釋。
您可能對使用quickfix窗口存儲匹配結果感興趣。 在vim Wiki上有關於此的一些信息。 那里的示例顯示了如何匹配光標下的當前單詞,但是您可以使用如下代碼:
vim command! -nargs=1 GREP :execute 'vimgrep '.string(<q-args>).' '.expand('%') | :copen | :cc
然后, GREP FIXME
將在快速修復窗口中彈出匹配項,這對於在結果之間進行導航非常有用。 如下所示:
這是在我的一個vim文件中運行:GREP fnamemodify
的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.