2014-10-06 42 views
1

我最近開始使用終端的(xterm)vi模式。我喜歡不必將手指從鍵盤上移開,但是我想將前一行的部分輸出複製到當前行中,然後切換到鼠標。終端vi模式:滾動前一行和輸出

有沒有辦法通過終端移動光標,然後進入可視化模式並選擇幾個字,然後複製它?

  • 我知道k/j從歷史中滾動,但我想要移動前面的行的輸出。
  • 我知道在某些終端上有一些轉義序列,但我似乎無法讓他們在我的工作。顯然,純粹的vi模式解決方案是最好的。

謝謝!

+1

這不是一個好的答案,但tmux可以開箱即用。 [這是博客文章](http://dudenbostel.leanside.com/2014/01/copy-paste-in-tmux/)重新映射密鑰以匹配vi's。 – 2014-10-06 16:43:33

+0

我剛發佈我的回答後發現,這不是一個真正的'vi'問題,而是一個'xterm'問題。我很想知道它是否適用於'xterm'。 – Matthieu 2014-10-14 14:15:17

回答

1

我回答我的問題,因爲沒有其他人沒有...

  • 看來,有沒有辦法在一個正常的終端來做到這一點。換碼序列基本上是在終端周圍移動光標(以便您可以覆蓋以前的文本),如下所述:http://wiki.bash-hackers.org/scripting/terminalcodes。但是沒有辦法選擇終端內置的文本(除了鼠標)。即使vi-mode需要在vi中打開一個臨時文件才能選擇文本(當您將v用於可視模式時,會發生這種情況)。

  • 約旦指出,tmux可以做到這一點與一個很好的「命令模式」。這就是我最終做的。

0

您可以使用命令v在光標下的字符處開始視覺選擇。將光標移至所需的最後一個(包括使用快捷方式we)並按任意命令(y複製,d刪除...)。

查看the man page瞭解更多信息。

+0

感謝您的嘗試,但這在xterm vi模式下不起作用。如果有某種方式來實現它,那將會很棒。 – MCK 2014-10-20 22:33:49

0

在我的xterm中,我將光標置於單詞上的命令模式中以開始複製。使用'y'鍵來增加單詞的數量,使用'w'鍵單詞'5'。用「p」鍵將光標移動到放置單詞的位置。可以使用'o'打開一個新行,[ESC]鍵在'p'put命令之前返回命令模式。

Now is the time for all good people to 
come to the aid of their country. 

將光標放在時間上,y5w,移動光標,p。

time for all good people