我正在寻找如何修改我的 tmux 配置以便默认启用“超链接”功能。
动机
我正在尝试使我的 tmux 配置与超链接一起工作。我在 Ubuntu 24.04 上运行,在默认终端中我可以运行:
python3 -c "if 1:
import rich
import pathlib
dpath = pathlib.Path('~').expanduser()
rich.print(f'[link={dpath}]{dpath}[/link]')
"
(以上需要 Python3 和pip install rich
)
这将打印一个链接,我可以按住 Control 键并单击该链接以打开指向该目录的 Nautilus 窗口。但是,默认情况下,如果我打开 tmux 会话并键入相同的命令,它将以漂亮的颜色打印,但不能通过 Control 键单击。
我对此主题进行了一些搜索并找到了一个线索:
据称在 3.4 版本中添加了超链接支持,我正在使用的就是这个版本。
部分解决方案
经过一番搜索,我发现我运行的版本确实支持超链接,但默认情况下似乎没有启用。不过,我找到了一种启用它的方法。如果我使用以下命令启动 tmux 会话:
tmux -T hyperlinks
运行上述代码,它会打印一个我可以点击的链接!此外,还有一个很好的测试来查看该功能是否已启用。如果我运行:
tmux display -p "#{client_termfeatures}"
如果该功能处于活动状态,逗号分隔的字符串将包含“超链接”。太棒了,这表明该功能存在并且可以工作。现在我需要在我的配置中启用它,但这给我带来了比我预期更多的麻烦。
问题
接下来我想做的是默认启用此功能,而无需-T
在命令行上指定选项。我可以使用别名来做到这一点,但我宁愿在 tmux 配置中设置它,这似乎是一种更简洁的方法。但是,我很难让它工作。
我在tmux 的常见问题解答中搜索了一下,其中给出了向终端功能添加一些内容的示例:
set -as terminal-features ",gnome*:RGB"
所以我尝试做的第一件事就是添加链接
set -as terminal-features "hyperlinks"
但是,当我开始新会话并尝试tmux display -p "#{client_termfeatures}"
或尝试使用 rich 打印超链接时,它不起作用。我尝试运行tmux source ~/.tmux.conf
以确保配置已重新加载,并且还尝试使用手动运行命令ctrl+b :<command>
。我还尝试了带有-g
标志的变体,但这些都没有让我得到有效的超链接。
主要问题:
如何正确地将“超链接”添加到我的 ~/.tmux.conf 文件中的终端功能数组?