題 如果我打開vim,如何通過控制台與命令行交互?


我知道我能做到 !commands 但我想以某種方式在vim中集成一個shell。或者我可以使用屏幕並拆分屏幕,以便vim佔據屏幕的一半?


4
2017-11-12 19:21


起源




答案:


按Ctrlž 將暫停vim並將控制權返回給bash。使用 fg 回到vim。


9
2017-11-12 19:26





整合子過程是Vim的主要弱點。有 沒有內置的shell窗口支持,但你可以試試 vimsh插件

在屏幕中,按 C-a c 創建一個新的(全屏)窗口。按 C-a p 要么 C-a n 移動到上一個/下一個窗口(C-a space 也移動到下一個窗口)。也是 split 命令(C-a S)將您的屏幕分成兩個區域;你可以使用一個用於shell,一個用於Vim。按 C-a tab 在區域之間切換。

你總是可以按 按Ctrl+ž 暫停Vim並在父shell中運行命令;類型 fg 回到Vim。或者你可以使用 :shell 創建一個(全屏)子shell;類型 exit 回到Vim。


5
2017-11-12 20:36





正如你的建議,我只會使用屏幕。

  • screen 
  • ^ A-c創建一個新窗口
  • ^ A-S將屏幕水平分割成兩個區域(某些版本有Ctrl- |垂直分割)
  • ^ A-Tab移動到新區域
  • ^ A-n將區域更改為下一個窗口

如果你不想要正好一半,你可以:

  • ^ A- +增加當前區域的大小

如果你需要在命令行上看到vim中的內容,這是一個很好的方法。如果你不這樣做 Ctrl-Z/fg 已提到的方法是要走的路。


3
2017-11-12 21:05





你也可以使用:shell來生成一個shell。鍵入exit或Ctrl + D退出shell並返回vim。如果你想同時運行,使用fg / bg(每個Ignacio),屏幕(如你的建議)或只是兩個獨立的終端(xterms,虛擬控制台,等等)是你最好的選擇。

如果你去vim.org,你可能會找到一個直接啟動shell的擴展,但是那時你已經危險地接近了emacs。 ;)以下是使用屏幕的示例: http://www.vim.org/scripts/script.php?script_id=2711


2
2017-11-12 20:37



“你可能會找到一個直接啟動shell的擴展,但是那時你已經危險地接近了emacs”。停止說話,你嚇唬孩子們。 - TTM