簡體   English   中英

如何在Vim中將命令輸出打印到新窗口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM