Xterm

啟用 Ctrl+C 複製和 Ctrl+Shift+C 中斷

  • July 8, 2020

我想在 xterm 中啟用Ctrl+C用於複製和++Ctrl用於SIGINT/中斷。Shift``C

我發現了以下內容

XTerm*VT100.Translations: #override \
     Shift Ctrl<Key>V: insert-selection(CLIPBOARD) \n\ 
     Shift Ctrl<Key>V: insert-selection(PRIMARY) \n\ 
     Shift<Btn1Down>: select-start() \n\ 
     Shift<Btn1Motion>: select-extend() \n\ 
     Shift<Btn1Up>: select-end(CLIPBOARD) \n\

我相信部分存在,但沒有展示如何覆蓋Ctrl+ C

那是“部分存在”,但遇到了沒有對應於 ++ 或 ++ 的預定義(單Ctrl字節)Shift字元的問題。您需要使用該單字節字元來設置中斷()。同樣, control+V 是 中的文字 next ( ) 設置。C``Ctrl``Shift``V``intr``stty``lnext``stty

您可以使用翻譯資源使用該功能發送Ctrl+C字元string,例如,translations資源中的這些行:

ctrl shift <key>C : string(0x03) \n\
ctrl shift <key>V : string(0x16) \n\

然後分配未移位的鍵(**~**在 `shift 關鍵字之前放置一個波浪號)。

從後續評論中,我同意僅指定移位的模式就足夠了:

~Shift Ctrl <KeyPress> v: insert-selection(CLIPBOARD)\n\
~Shift Ctrl <KeyPress> c: copy-selection(CLIPBOARD)\n

一些註釋(可能會記錄在案,但原始碼有幫助):

  • <KeyPress>意思是一樣的<Key>
  • 修飾符(和<KeyPress>)匹配忽略大小寫。
  • 右側的部分**:**區分大小寫。

通常,無論有無移位修飾符,都不會對Ctrl+進行翻譯。Cxterm 只需獲取XKeyEvent具有修飾符資訊和字元的一個,然後對其進行解碼*。*該translations資源會更改可能發送到 xterm 的事件。

您將在翻譯中使用修飾符來限制匹配,例如,省略Shift意味著無論是否按下 shift 鍵,它都匹配。添加顯式**~shift移位)修飾符對匹配沒有影響shift**。

進一步閱讀:

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