启用 Ctrl+C 进行复制,启用 Ctrl+Shift+C 进行中断

Wil*_*iam 9 xterm

我想使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

Tho*_*key 9

那是“部分存在”,但遇到了没有对应于Ctrl+ Shift+CCtrl+ 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

进一步阅读: