如何配置 GNOME 终端以启动与当前选项卡具有相同 SSH 主机和目录的新选项卡?

如何配置 GNOME 终端以启动与当前选项卡具有相同 SSH 主机和目录的新选项卡?

我的来源vte.sh在我的.bashrc.这样做的一件事是它导致 Bash"\033]7;file://$HOSTNAME$PWD\007"作为PROMPT_COMMAND.这使用转义序列“OSC 7”file://mylocalbox/home/kerrick向终端发送类似的值,告诉它当前的主机名和目录是什么。当您在 GNOME 终端中打开新选项卡时,它会使用 OSC 7 中的信息在与前一个选项卡相同的目录中打开终端。

我想配置 GNOME 终端,以便如果当前选项卡正在运行 SSH 会话,启动新选项卡将通过 SSH 连接到同一主机并更改到同一目录。换句话说,如果 OSC 7 值类似于file://myremotebox/foo/bar,它将运行exec ssh -t myremotebox 'cd /foo/bar && exec bash -l'而不是默认终端会话。

如何配置 GNOME 终端来执行此操作?

答案1

它不支持此功能,您需要修改其源代码。如果您习惯于接触外国 C++ 代码,这可能是一项相当简单的任务。


笔记:

虽然您当然可以想出一个适用于大量情况的补丁,但总会有无法 100% 可靠处理的情况。

也许远程用户名与本地用户名不同。用户名不是 OSC 7 序列的一部分,因此您无法知道远程用户名是什么。

也许远程主机名(远程主机称其自身)无法在本地主机上使用来解析其地址。

也许该网站是通过多个 ssh 跃点到达的。

sshd 也许正在非默认端口上运行。

也许它不是 ssh,而是老式的 rsh / telnet 或类似的东西。

可能还有更多......像这样的情况很难使这样的功能符合主流包含的条件,它只会经常中断(特别是用户名不匹配在实践中是一个有效的问题)。 OSC 7 为您提供部分的相关信息你在哪里,而你需要的是到那里怎么走

相关内容