考慮任何解釋性程式語言。
我可以使用 執行目前開啟的腳本! 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
。