默认 gnome 终端中突出显示的文本错误地包含应被忽略的单词边界字符
例如当我双击
&freq_domain_magnitude_buffer_a2i
它应该忽略前导 &
,只突出freq_domain_magnitude_buffer_a2i
过去,下面的技术有效(现在无效)来定义一组这样的单词边界字符
UUID=$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d "'" ) # strip off any single quotes
echo $UUID
gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:${UUID}/ word-char-exceptions '@ms "-#%&+,./:=?@_~"'
即使在上面工作时,看到单词也令人不安legacy
……如何编辑单词边界字符列表?可以使用工具完成吗dconf-editor
?有没有更好的替代终端支持定义单词边界字符?
这个问题可以追溯到几年前
dconf 写入 word-char-exceptions 不生效
https://unix.stackexchange.com/questions/409017/gnome-terminal-double-click-delimiters
https://bugzilla.redhat.com/show_bug.cgi?id=1165244
在 Ubuntu 22.04 gnome 终端上(GNOME 42 的版本 3.44.0)
答案1
问题是 将gsettings get
其输出打印在单引号内,即 的值UUID
不会变成您期望的实际 UUID,而是变成用文字撇号括起来的值。您应该删除这些撇号。
当然,这一切都可以通过命令行完成,使用gsettings
(如您所做)或dconf
,以及一些 shell 脚本粘贴。但是,我发现在 中导航更方便dconf-editor
。当您导航到 时/org/gnome/terminal/legacy/profiles:
,您可能会看到一些子文件夹的名称中已经包含撇号,这是由于您之前运行了您发布的错误脚本。这些未被 所使用gnome-terminal
,您可以右键单击并“递归重置”。如果您导航到给定的正确配置文件的word-char-exceptions
,您可以在那里看到旧值或设置新值。
附言:不要担心“遗产”这个词。我不知道它为什么在那里,但它在那里,没关系。
答案2
对我来说(22.04LTS),此设置(word-char-exceptions
)的作用相反 - 它包含的字符被视为单词字符。因此,除了默认的字母数字字符外,请尝试添加任何您希望通过双击选择的内容,例如要添加这些字符:-_.^~
使用此命令:
dconf write /org/gnome/terminal/legacy/profiles:/:`gsettings get org.gnome.Terminal.ProfilesList default | tr -d \'`/word-char-exceptions "@ms '-_.^~'"