gnome-terminal:在新选项卡中跟踪目录

kor*_*nce 42 shell cd-command gnome-terminal

我在 Arch linux 上,当我打开一个新的终端选项卡时,它总是转到$HOME. 我怎样才能做到这一点,当我打开一个新选项卡时,它会在我之前所在的目录中打开 shell?

kor*_*nce 55

有一个与此问题相关的错误

您需要做的就是将以下行添加到您的.bashrcor 中.zshrc

. /etc/profile.d/vte.sh
Run Code Online (Sandbox Code Playgroud)

至少在 Arch 上,脚本会检查您是在运行 bash 还是 zsh,如果不是,则退出。

  • 应该注意的是,这可能不会产生任何效果,除非在“export PROMPT_COMMAND=...”之后添加它,如果这样的东西已经存在于“.bashrc”中。 (3认同)
  • `/etc/profile.d/vte.sh` 覆盖了 `PROMPT_COMMAND` 变量。要解决此问题,您可以修改`vte.sh`,并将`PROMPT_COMMAND="__vte_prompt_command"` 部分更改为`PROMPT_COMMAND="${PROMPT_COMMAND};__vte_prompt_command"` (2认同)
  • 我一直很小心地把它放在正确的地方,检查脚本是否存在等,但它没有达到预期的效果。我正在使用 Gnome 终端 3.18.1 运行 4.2.3-1-ARCH。有什么建议? (2认同)

xjc*_*jcl 9

不妨从超级用户那里交叉发布这个骇人听闻的解决方案:

[这] 将当前文件夹保存在一个文件中,在每个命令之后(不会伤害太多 IMO)并在保存的当前文件夹中打开一个新终端。

将以下内容添加到.zshrc [或.bashrc ]

# emulate bash PROMPT_COMMAND (only for zsh)
precmd() { eval "$PROMPT_COMMAND" }
# open new terminal in same dir
PROMPT_COMMAND='pwd > "${HOME}/.cwd"'
[[ -f "${HOME}/.cwd" ]] && cd "$(< ${HOME}/.cwd)"
Run Code Online (Sandbox Code Playgroud)

请注意,这也会在打开新窗口时将您置于上次使用的目录中。