在分割窗格中開啟 shell 指令的輸出

在分割窗格中開啟 shell 指令的輸出

考慮任何解釋性程式語言。

我可以使用 執行目前開啟的腳本! interpreter %,並在執行完成後使用返回鍵返回 vim。

是否有可能不使用執行的 shell 命令的輸出替換當前窗口,而是在新的分割窗格中打開輸出?我希望在腳本執行期間仍然可以看到我的原始程式碼。

我嘗試過:split ! interpreter %,但沒有成功。

有辦法嗎?我用的是 vim 7.3。

答案1

使用 時:!,外部命令在 shell 中執行,並且短暫的輸出不會在 Vim 內部捕獲;您只需查看終端機上列印的內容,然後在外部命令完成後控制權返回 Vim。

要保留輸出,您必須將其讀入 Vim緩衝。為此,有:read!命令。去開一個新的刮痕緩衝區,將其與:new

:new | 0read ! <command>

如果要將目前緩衝區的檔案名稱 ( %) 傳遞給外部命令,則必須使用:execute,以便它已在目前緩衝區中進行計算:

:execute 'new | 0read ! interpreter' expand('%')

或者,您使用這樣一個事實:對於新的緩衝區,前一個緩衝區將成為備用一,並使用#而非%

:new | 0read ! interpreter #

使用 刪除暫存緩衝區:bdelete!

如果您想在執行時非同步查看輸出,則需要一個外部多工器或插件,如 @chaos 答案中所述。

答案2

據我所知,你不能這樣做vim。但請使用類似的終端多工器screen。在開啟 vim 之前啟動多工器:

screen

然後按ctrl-a S進行水平分屏,按ctrl-a |進行垂直分割畫面。

vim現在在其中一個分割畫面中開啟一個檔案。並使用ctrl-跳到另一個螢幕a tab。請注意,在第二個畫面中,您必須先打開一個新畫面 ( ctrl- a c),然後才能使用它。

在 vim 畫面中,您可以編輯文件,在另一個畫面中,您可以執行它並永久查看訊息和代碼。

這裡有一個快速參考為了screen

相關內容