‹ 指南

点击终端里的链接 v26.1.6+

终端里打印出来的网址可以直接点,不管打印它的程序有没有特意标记。Term 会先让你看清目标,然后在应用内打开。

需要 Term v26.1.6 或更高版本。

撰写于

先看清,再打开

点屏幕上任意一个网址,Term 会先问一句,并把即将打开的完整地址显示出来。你同意之前,不会发出任何请求。

这一步不是为了增加操作。屏幕上的文字来自远端,而一个你并不完全信任的远端可以打印任何东西 —— 所以唯一值得保证的,就是你看到的是真正的目标地址,在请求发出之前。

终端上方的确认对话框,显示确切的网址,带取消和开启
屏幕上那行是 see https://docs.github.com/en ok,对话框里恰好只有网址。周围的词不属于链接 —— 见最后一节。
不必是“真正的”超链接

终端程序可以把文字标记成链接(那个转义序列叫 OSC 8),标记了的话,Term 打开的是它声明的目标 —— 那可能和你看到的文字不一样。但几乎没有程序这么做:echo 出来的、编译器报错里的、git remote、从别处粘进来的,都只是普通字符。这些 Term 也能认出来。

包括网址太长、折到下一行的情况。点其中任意一半,打开的都是完整地址。

确认对话框显示一个在终端里被拆成两行的完整网址
屏幕上这个地址在 tar. 之后断开,对话框里是完整的。
在 Term 内打开

链接在 Term 自带的浏览器里打开,而不是把你交给别的应用 —— 这是为了你的会话,不是为了留住你。离开 Term 会让它进入后台,而后台应用保住 SSH 会话的时间远不到一分钟。看一个网页,不该让你丢掉正在用的 shell。

顶栏会写明你在哪个站点。我们自己的页面显示 const.net 并带一个蓝色印记;其他站点显示完整主机名,含子域名 —— 因为那才是告诉你真正在跟谁打交道的部分。右侧按钮可以随时把页面交给系统浏览器。

Term 应用内浏览器的顶栏,显示页面标题和主机名
一个第三方页面:完整主机名,没有印记。你的会话还在它后面运行着。
如果链接是下载

很多链接其实是文件 —— 发布包、.deb、PDF。Term 没有地方存放它们,所以与其打开一个永远不出现的页面,不如把下载交给系统浏览器(它有下载管理器),然后自己退开。

判断依据是服务器怎么说,而不是从地址猜 —— 只有这样才判断得准:下面这个发布包,路径中间含 tar.gz,结尾什么也没有;而很多普通网页反而以看着像文件的后缀结尾。

系统浏览器的下载对话框,文件名为 koko-master.tar.gz
交出去了,名字有了,可以下载 —— 而不是应用里的一个空白页。

例外是通过端口转发打开的页面,它只在应用内存在 —— 别的浏览器根本加载不了。这种情况下 Term 会告诉你这是个下载,并留在原处,而不是把一个注定悄悄失败的地址交出去。

哪些不算链接

网址周围那句话的标点不属于它。地址后面的句号会被留下;括号只有在它的左半边也在地址里时才保留 —— 所以 (https://x.dev/a) 打开的是网址,而 https://x.dev/a(b) 会带着自己的括号。

另外,光是一个主机名不算链接:www.example.com 或 example.com 点了没反应。这是刻意的。文字里到处都是点号,而点开错误的东西比点了没反应更糟 —— 凡是能复制粘贴的网址,本来就带着 https://。