我想使Ctrl+C用于复制和Ctrl+ Shift+C中的xterm为SIGINT /中断。
我发现了以下内容。
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\
Run Code Online (Sandbox Code Playgroud)
我相信它部分存在,但没有演示如何覆盖Ctrl+ C。
那是“部分存在”,但遇到了没有对应于Ctrl+ Shift+C或Ctrl+ Shift+ 的预定义(单字节)字符的问题V。您需要该单字节字符用于中断 ( intr
) 设置stty
。同样, control+V 是 中的文字 next ( lnext
) 设置stty
。
您可以使用翻译资源使用该功能发送Ctrl+C字符string
,例如,translations
资源中的这些行:
ctrl shift <key>C : string(0x03) \n\
ctrl shift <key>V : string(0x16) \n\
Run Code Online (Sandbox Code Playgroud)
然后分配未移位的键(~
在 `shift 关键字之前放置一个波浪号)。
从后续评论中,我同意仅指定未移位的模式就足够了:
~Shift Ctrl <KeyPress> v: insert-selection(CLIPBOARD)\n\
~Shift Ctrl <KeyPress> c: copy-selection(CLIPBOARD)\n
Run Code Online (Sandbox Code Playgroud)
一些注意事项(可能已记录在案,但源代码有帮助):
<KeyPress>
意思是一样的 <Key>
<KeyPress>
)匹配忽略大小写。:
区分大小写。通常,无论是否使用移位修饰符,都不会对Ctrl+C进行转换。xterm的只是得到一个XKeyEvent
它具有修改信息和性格,和解码是。该translations
资源改变了可能发送到 xterm 的事件。
您可以在翻译中使用修饰符来限制匹配,例如,省略Shift意味着无论是否按下 shift 键都匹配。添加显式~shift
(无移位)修饰符对 的匹配没有影响shift
。
进一步阅读: