gnome-terminal。打开新标签页

gnome-terminal。打开新标签页

我正在启动 gnome-terminal 并且在特定路径中工作,例如:/home/user/programs/c

现在我正在打开另一个选项卡。当我打开新选项卡时,它也位于同一路径中,即新选项卡的工作目录将是/home/user/programs/c

但我想要的是当我打开新标签时它的工作目录应该是/home/user

我该如何实现这一点?任何帮助都非常感谢。提前致谢!

答案1

和这里一样

解决方案是在首选项中选中“以登录 shell 身份运行命令”。对我来说,这个方法很管用。

查看常见问题解答

答案2

根据常见问题解答

从 3.7 版开始,要使新终端在当前终端的工作目录中启动,需要在终端中运行的 shell 进行配合。为此,从 0.34.5 版开始,vte 安装了一个/etc/profile.d/vte.sh脚本,该脚本在被调用时会自动进行设置。它同时支持bash(1)zsh(1)

我查看了/etc/profile.d/vte.sh,但老实说,我不知道这个脚本中哪里发生了这种情况。忽略这一点,您可以通过修改gnome-terminal首选项来实现所需的结果。这不是一个非常优雅的解决方案,但它对我使用 Debian 10 来说很有效zsh

  • “个人资料” > “命令”
  • 勾选“运行自定义命令而不是我的 shell”
  • 在“自定义命令”文本框中使用你的 shell 的二进制文件

Debian 10 中的 Gnome 终端偏好设置的屏幕截图

答案3

gnome-terminal 本身似乎没有办法覆盖此行为。我发现最简单的解决方法是向文件cd中添加显式~/.bashrc

echo 'cd $HOME' >> ~/.bashrc

然后,当您打开新选项卡时,它会将当前目录更改回您的主目录。

答案4

这是 gnome-terminal 的一个功能,除了我和 thillai-selvan,似乎每个人都喜欢它。当它不能正常工作时(即当新选项卡在与上一个选项卡相同的目录中打开时),有很多关于如何修复它的文档。但是,关于如何禁用该功能的信息很少。据我所知,它不能在 gnome-terminal UI 或任何配置文件中禁用。所以你需要打破它或绕过它。

对于我的用例来说,echo 'cd $HOME' >> ~/.bashrc这不是一个好的解决方案,因为在某些应用程序中,我希望它们能够在不同的目录中打开,主要是 vscode 中的嵌入式终端,而 bashrc 中的那一行将阻止它。

该功能通过提供 PROMPT_COMMAND 来实现,每次生成提示时,该命令都会记录当前目录。gnome 的当前版本通过将vte脚本安装到来实现此/etc/profile.d功能。您应该能够删除该文件(备份它,以便以后可以恢复)并禁用此功能。

相关内容