新选项卡的gnome终端PWD

问题描述 投票:0回答:1

如果您进入文件夹并打开新选项卡,您会在同一工作目录中获得一个新选项卡。

如果您执行“cd folder;sleep 10s”,并且在 sleep 命令完成之前打开一个新选项卡,则该选项卡将在旧文件夹中打开。 有办法改变这个吗?

用例:我想定义别名 别名sea='cd $(目录名$1); vim $(基本名称 $1)'

这样,如果我编辑文件并想要打开新选项卡,它将在正确的文件夹中打开。

gnome-terminal
1个回答
0
投票

关键是 OSC 7 转义序列。这会将工作目录告知终端。

GNOME 终端(位于

/etc/profile.d/vte.sh
或类似名称的文件中)将 shell 提示设置为在打印提示时发出 OSC 7。这就是通知终端应在哪个目录中打开新选项卡或窗口的方式。执行完一个单独的
cd
命令后,shell 会打印下一个提示符,因此一切都已更新。

您需要做的是使用函数覆盖

cd
命令来发出此命令,或者定义自定义别名或函数以发出 OSC 7 序列,并以主机名和所需目录作为参数。请正确处理 URI 转义特殊字符,就像使用帮助程序
/usr/libexec/vte-urlencode-cwd
实用程序完成的那样(在较新版本中)。

(主机名在那里,以便在不匹配的情况下,终端知道您已登录到远程主机,因此不会尝试在该目录的本地对应位置打开新终端。)

© www.soinside.com 2019 - 2024. All rights reserved.