OS X El Capitan 10.11 Terminal 2.6 不会打开具有相同工作目录的新选项卡

OS X El Capitan 10.11 Terminal 2.6 不会打开具有相同工作目录的新选项卡

我正在使用终端的默认设置,但是当我创建新选项卡时,我的工作目录总是设置为我的主文件夹,而不是前一个选项卡的当前工作目录。

这是我的终端偏好设置的图片:

https://i.stack.imgur.com/TIIzN.png

正如您在常规设置中看到的,“新标签打开方式:”设置为“相同的工作目录”。这似乎不起作用。我记得这在旧版本的终端中是有效的。

我的默认登录 shell 设置为/bin/zsh,并且我没有~/.zshrc

我希望能够解决这个问题,而不必安装类似的东西oh-my-zsh或向中添加某些东西~/.zshrc。这应该可以正常工作。(至少在 iTerm2 中是这样的。)

答案1

在 OS X 上,默认情况下,Bash 配置为在每个提示符下使用转义序列将当前工作目录传达给终端,并使用PROMPT_COMMAND环境变量。

在 OS X El Capitan 10.11 之前,此代码位于/etc/bashrc。在 10.11 及更高版本中,它已被移至终端特定/etc/bashrc_Apple_Terminal文件并/etc/bashrc执行相应的终端特定文件。

当前版本哦我的天啊!有类似的代码将工作目录传达给终端。

最有可能停止工作的原因是您更改了配置。也许您之前使用过 Bash,或者安装了 Oh My Zsh,但现在没有。另一种可能是,您以前将 shell 配置为将终端窗口或选项卡(又称“图标”)标题设置为包含工作目录路径名:为了方便旧配置,如果未明确设置工作目录,但窗口或选项卡标题包含有效的本地路径名,则终端会将其视为当前工作目录。

答案2

确保 Terminal.app 的“新窗口/选项卡打开方式:相同的工作目录”选项在 zsh 作为登录 shell 时仍然有效的一种简单方法是指示 zsh 通过转义序列将当前工作目录中的更改传达给 Terminal.app。我在我的.zshrc系统中这样做了:

# tell terminal.app about cwd so new tabs open in same dir
tell_terminal_cwd() {
   cwd=$(print -rD $PWD)
   echo -ne "\033]0;${cwd}\007"
}
precmd_functions+=(tell_terminal_cwd)

Terminal.app 关于此主题的说明说,将当前工作目录提供为正确编码的 file:// URL(包括主机名),但我发现上述方法运行良好,并且在选项卡标题中看起来也不错。

答案3

像你一样,我想在不加载的情况下执行此操作全部的 Oh-My-Zsh。

事实证明,截至 4e306887 左右(为什么 OMZ 似乎没有“版本”的概念!?糟糕的软件开发实践。ಠ_ಠ),他们包含的文件会为您处理这个问题。您还termsupport.zsh必须删除该文件。functions.zsh


就我个人而言,我使用超轻量级(例如,我读全部在开始使用它之前,请先阅读代码,因为它是一个≤500行的文件)Zgen.zsh。 (它明确支持使用 OMZ 模块等,而无需加载 OMZ 的其余部分!)如果您选择这样做,以下是解决方案:

if ! zgen saved

   ...

   # Steal omz's termsupport for Apple Terminal. (Hacky; will have to
   # watch to see if this changes.) - <http://superuser.com/a/1031708/22030>
   zgen load robbyrussell/oh-my-zsh lib/functions.zsh
   zgen load robbyrussell/oh-my-zsh lib/termsupport.zsh

   ...

fi

相关内容