Xterm
啟用 Ctrl+C 複製和 Ctrl+Shift+C 中斷
我想在 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
+進行翻譯。C
xterm 只需獲取XKeyEvent
具有修飾符資訊和字元的一個,然後對其進行解碼*。*該translations
資源會更改可能發送到 xterm 的事件。您將在翻譯中使用修飾符來限制匹配,例如,省略
Shift
意味著無論是否按下 shift 鍵,它都匹配。添加顯式**~shift
(無移位)修飾符對匹配沒有影響shift
**。進一步閱讀:
- 自定義鍵綁定(xterm 手冊)