Matan Asked: 2018-05-20 21:52:47 +0800 CST2018-05-20 21:52:47 +0800 CST 2018-05-20 21:52:47 +0800 CST 终端可点击的相对文件路径超链接 772 我发现 ctrl 单击file:///full-path-to-file终端中程序打印的超链接(例如到标准输出)会假定完整路径,以便在配置的默认编辑器中打开文件。 有没有办法在终端中等效地拥有作为相对路径的超链接?什么可能是必要的语法? terminal nautilus 1 个回答 Voted Best Answer egmont 2018-05-21T12:45:51+08:002018-05-21T12:45:51+08:00 相对路径的固有问题是:相对于什么? 相对于终端模拟器的直接子级的工作目录(通常:您的外壳)在 ctrl-clicking 时几乎没有用,一旦您cd离开,您的所有链接都会中断。 您至少需要在发出文本时相对于子进程的目录。这引发了一些问题。首先,终端仿真器需要知道它的孩子的工作目录(例如通过 OSC 7 序列,或者像 iTerm2 中的一些更紧密的 shell 集成),然后在执行内部更改其工作目录的实用程序期间仍然可能不正确(例如make)。此外,仿真器需要为每个打印的字符单元记住这些信息,这可能非常昂贵。 您可能对某些终端仿真器的一个相当新的特性感兴趣:显式超链接。使用特殊序列,可见文本可以变成指向任何位置的超链接。超链接的目标仍然需要指定为绝对 URI,但显示的文本可以是您想要的任何内容(可能只是一些相对路径名,甚至是完全不同的内容)。
相对路径的固有问题是:相对于什么?
相对于终端模拟器的直接子级的工作目录(通常:您的外壳)在 ctrl-clicking 时几乎没有用,一旦您
cd
离开,您的所有链接都会中断。您至少需要在发出文本时相对于子进程的目录。这引发了一些问题。首先,终端仿真器需要知道它的孩子的工作目录(例如通过 OSC 7 序列,或者像 iTerm2 中的一些更紧密的 shell 集成),然后在执行内部更改其工作目录的实用程序期间仍然可能不正确(例如
make
)。此外,仿真器需要为每个打印的字符单元记住这些信息,这可能非常昂贵。您可能对某些终端仿真器的一个相当新的特性感兴趣:显式超链接。使用特殊序列,可见文本可以变成指向任何位置的超链接。超链接的目标仍然需要指定为绝对 URI,但显示的文本可以是您想要的任何内容(可能只是一些相对路径名,甚至是完全不同的内容)。