xterm:如何在 FreeBSD 下使用 Ctrl+C 复制文本?

xterm:如何在 FreeBSD 下使用 Ctrl+C 复制文本?

我有这个 XTerm 文件:

XTerm*Background: black
XTerm*Foreground: white
XTerm*SaveLines: 2000
XTerm*faceName: "Font Awesome 5 Brands-Regular-400"
XTerm*faceSize: 8
XTerm*rightScrollBar: true
XTerm*ScrollBar: true
XTerm*scrollTtyOutput: true
XTerm*VT100.Translations: #override \
      Ctrl<Key>V: insert-selection(CLIPBOARD) \n\ 
      Ctrl<Key>V: insert-selection(PRIMARY) \n\ 
      Shift<Btn1Down>: select-start() \n\ 
      Shift<Btn1Motion>: select-extend() \n\ 
      Shift<Btn1Up>: select-end(CLIPBOARD) \n\
Ctrl <Key>C: copy-selection(CLIPBOARD) \n
Ctrl <Key>V: insert-selection(CLIPBOARD)

在 FreeBSD 11.2、i3 4.15 和 X.Org 1.18.4 下,我发现使用Ctrl+C不会将选定的文本从 XTerm 复制到剪贴板,尽管Ctrl+V会粘贴文本。其他应用程序将文本复制到剪贴板没有问题。是否有一些技巧可以让它在 FreeBSD 下工作,而在 Linux 下则不需要(因为在 Linux 下使用Ctrl+C复制这个 XTerm 文件就可以了)?

答案1

问题出在示例.Xdefaults文件中:

  • 选择/粘贴显示原始文件有尾随空白(这会干扰格式化为单独的行/单独的操作)
  • 无论如何,缺少一个反斜杠。
  • 开头的“#”是一条注释,一直延伸到该行的末尾。一次失踪\n\使得第一个实例被controlV忽略。

我的文本编辑器(vi 喜欢 emacs)使用语法突出显示向我展示了问题。实际上(仔细检查),维姆并没有突出问题。但是你可以通过打开列表选项:

XTerm*Background: black^J
XTerm*Foreground: white^J
XTerm*SaveLines: 2000^J
XTerm*faceName: "Font Awesome 5 Brands-Regular-400"^J
XTerm*faceSize: 8^J
XTerm*rightScrollBar: true^J
XTerm*ScrollBar: true^J
XTerm*scrollTtyOutput: true^J
XTerm*VT100.Translations: #override \^J
      Ctrl<Key>V: insert-selection(CLIPBOARD) \n\ ^J
      Ctrl<Key>V: insert-selection(PRIMARY) \n\ ^J
      Shift<Btn1Down>: select-start() \n\ ^J 
      Shift<Btn1Motion>: select-extend() \n\ ^J
      Shift<Btn1Up>: select-end(CLIPBOARD) \n\^J
Ctrl <Key>C: copy-selection(CLIPBOARD) \n^J
Ctrl <Key>V: insert-selection(CLIPBOARD)^J

语法突出显示\n\通过指出资源中的异常情况来帮助解决缺失等问题。普通 vi 对此没有帮助。

修复后:

XTerm*Background: black^J
XTerm*Foreground: white^J
XTerm*SaveLines: 2000^J
XTerm*faceName: "Font Awesome 5 Brands-Regular-400"^J
XTerm*faceSize: 8^J
XTerm*rightScrollBar: true^J
XTerm*ScrollBar: true^J
XTerm*scrollTtyOutput: true^J
XTerm*VT100.Translations: #override \n\^J
      Ctrl<Key>V: insert-selection(CLIPBOARD) \n\^J 
      Ctrl<Key>V: insert-selection(PRIMARY) \n\^J 
      Shift<Btn1Down>: select-start() \n\^J  
      Shift<Btn1Motion>: select-extend() \n\^J 
      Shift<Btn1Up>: select-end(CLIPBOARD) \n\^J
Ctrl <Key>C: copy-selection(CLIPBOARD) \n\^J
Ctrl <Key>V: insert-selection(SELECT)^J

这是(再次选择/粘贴)适合我的文本:

XTerm*Background: black
XTerm*Foreground: white
XTerm*SaveLines: 2000
XTerm*faceName: "Font Awesome 5 Brands-Regular-400"
XTerm*faceSize: 8
XTerm*rightScrollBar: true
XTerm*ScrollBar: true
XTerm*scrollTtyOutput: true
XTerm*VT100.Translations: #override \n\
      Ctrl<Key>V: insert-selection(CLIPBOARD) \n\
      Ctrl<Key>V: insert-selection(PRIMARY) \n\
      Shift<Btn1Down>: select-start() \n\
      Shift<Btn1Motion>: select-extend() \n\
      Shift<Btn1Up>: select-end(CLIPBOARD) \n\
Ctrl <Key>C: copy-selection(CLIPBOARD) \n\
Ctrl <Key>V: insert-selection(SELECT)

相关内容