如何编辑终端字边界字符?

如何编辑终端字边界字符?

默认 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 不生效

我可以指定在 GNOME 终端中设置双击选择边界的字符吗?

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)

https://wiki.gnome.org/Apps/Terminal

答案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 '-_.^~'"

相关内容