Command-Line

如何在不使用滑鼠的情況下將文本從命令行複製到剪貼板?

  • May 5, 2020

我試圖找出一種方法來將命令行中的目前文本複製到剪貼板而不用觸摸滑鼠。換句話說,我只需要用鍵盤選擇文本。我找到了一個可能導致完整解決方案的中途解決方案:

Ctrl+a- 移動到行首。

Ctrl+k- 切斷整條線。

Ctrl+y- 將剪切的文本拉回來。

或者,我也可以Ctrl+u用來執行前兩個步驟。

這當然有效,但我試圖弄清楚剪切文本保存在哪裡。有沒有辦法在不使用的情況下訪問它Ctrl+y?我知道xclip並且我什至使用它將文本直接傳送到剪貼板,所以我正在考慮將保存的數據Ctrl+k傳送到xclip,但不知道該怎麼做。

到目前為止,我得到的方法是編寫一個腳本,用於xdotool添加echo到行首和| zxc行尾,然後按 enter(zxc作為一個自定義別名,基本上是管道xclip)。這也有效,但它不是一個真正“乾淨”的解決方案。

如果這有什麼不同,我正在使用 Cshell。

編輯:我不想screen用作解決方案,忘了提到這一點。

謝謝!

如果使用xterm或衍生您可以設置鍵綁定來開始和結束文本選擇,並將其保存為 X11 主選擇或剪切緩衝區。見man xterm。例如,添加到您的~/.Xdefaults

XTerm*VT100.Translations: #override\n\
   <Key>KP_1: select-cursor-start() \
           select-cursor-end(PRIMARY, CUT_BUFFER0)\n\
   <Key>KP_2: start-cursor-extend() \
           select-cursor-end(PRIMARY, CUT_BUFFER0)\n

你只能有一個XTerm*VT100.Translations條目。用新的文件內容更新 X11 伺服器xrdb -merge ~/.Xdefaults。開始一個新的xterm.

現在,當您在命令提示符下進行一些輸入時,1在數字小鍵盤上鍵入將開始在目前文本游標位置選擇文本,就像滑鼠按下按鈕 1 一樣。用箭頭鍵移動游標,然後點擊2數字小鍵盤,中間的文本將突出顯示並複製到主選擇和 cutbuffer0。顯然可以選擇其他更合適的鍵和動作。您可以使用類似的綁定粘貼選擇,例如insert-selection(PRIMARY).

引用自:https://unix.stackexchange.com/questions/335785