如何在 X 终端中配置双击行为?

max*_*zig 21 xterm mouse

在不同的 Unix/Linux 系统下,我观察到 X 终端应用程序(例如 xterm)中的不同双击行为。

有时双击会左右选择所有内容,直到下一个非字母字符(例如,它选择光标下的单词)。

有时直到下一个空白/eol 之前的所有内容都被选中(例如,光标下的完整路径被选中)。

我如何配置双击行为 - 比如 - 在 xterm 中(因为它在大多数系统上可用)?

目前,我发现对于大多数用例来说,第二种模式更方便。

Bru*_*ger 25

你用 X 资源来做这件事。我有一个文件,.Xresources,其中包含这些与 xterm 相关的资源:

XTerm*VT100.cutNewLine: false
XTerm*VT100.cutToBeginningOfLine: false
XTerm*VT100.charClass: 33:48,35:48,37:48,42:48,45-47:48,64:48,95:48,126:48
Run Code Online (Sandbox Code Playgroud)

在我的.xinitrc文件中,我有一些合并这些资源的行:

if [ -f $userresources ]; then
    /usr/X11/bin/xrdb -merge $userresources
fi
Run Code Online (Sandbox Code Playgroud)

这些行使 xterm 双击和三次单击执行我喜欢的操作:

双击认为“单词”包括斜线 (/)、点 (.)、星号 (*) 和其他一些非字母数字字符。那是“charClass”资源。我不得不对那个 charClass 做一些乏味的摆弄才能让它做我想做的事。这主要允许您双击 URL 和完全或部分限定的路径以突出显示它们。

另外两行从鼠标下的单词开始三击,一直到行尾,但不包括任何换行符。这样,您可以三次单击您刚刚执行的命令,将其粘贴到另一个窗口中,因为它没有换行符,您可以在另一个窗口中运行它之前对其进行编辑。

Arch Wiki 有一篇关于 X 资源文章,包括一个关于 xterm 资源的部分,但这些 xterm 资源并不完整。

  • Wiki 可能很有用,但有关 xterm 资源的咨询地点是其 [手册页](http://invisible-island.net/xterm/manpage/xterm.html)。 (2认同)

Tho*_*key 6

xterm 有几个与双击和三次单击选择相关的资源设置(手册页列出了所有相关资源):

cutNewline(class CutNewline)
如果为“false”,则三次单击以选择一行不包括行尾的换行符。如果为“true”,则选择换行符。默认值为“真”。

cutToBeginningOfLine(class CutToBeginningOfLine)
如果为“false”,则三次单击以选择一行只会从当前单词向前选择。如果为“true”,则选择整行。默认值为“真”。

on2Clicks(On2Clicks 类)
on3Clicks(On3Clicks 类)
指定响应多次鼠标点击的选择行为。鼠标单击始终按照选择函数部分中的描述进行解释(请参阅指针用法)。根据 on2Clicks 等的资源值解释多次鼠标点击(使用激活选择开始操作的按钮)。资源值可以是以下之一:

word
选择由charClass资源确定的“单词” 。请参阅字符类部分。

line
选择一条线(计数环绕)。

group
选择一组相邻的行(计数环绕)。选择在一个空行处停止,并且不会延伸到当前页面之外。

page
选择所有可见的行,即页面。

all
选择所有行,即包括保存的行。

regex
选择由资源值中跟随的正则表达式确定的“单词”。

none
没有选择操作与此资源相关联。Xterm 将其解释为列表的结尾。例如,您可以通过将 on3Clicks 设置为“none”来禁用三次(及更高)点击。

为默认值on2Clicks,并on3Clicks“字”“线”,分别。on4Clicks 或没有默认值on5Clicks,使它们处于非活动状态。启动时,xterm 根据onXClicks 设置的资源值确定最大点击次数。