iTerm2 启动命令被用户输入覆盖,有没有更好的方法获取 ~/.zschrc

iTerm2 startup command overwritten by user input, is there are better way to source ~/.zschrc

自从 OSX 将默认值 shell 更改为 zsh 以来,我一直对 iTerm2 设置不满意。

最初我注意到当打开新的 shell 时我的 ~/.zschrc 文件没有被获取。

按照此处的指导进行操作

https://apple.stackexchange.com/questions/115598/how-to-set-an-iterm2-startup-command

这里

似乎解决方案将 source ~/.zscshrc 添加到以下

首选项 -> 配置文件 -> Select 默认配置文件(默认profile 将被加星标) -> General -> Command -> Select Login Shell -> 在开始时发送文本:

我已经使用这个解决方案好几个月了,经常发现它很烦人而且失败了。

打开新终端时,我通常会开始发出命令。

例如,假设我发出命令 "remote"(ssh 连接到远程机器的别名)

我发出的命令经常被 在开始时发送文本 命令弄乱,破坏了 .zschrc 和我的命令的来源。

这是我打开一个新终端并尝试发出命令的一些示例输出

Last login: Fri Jan 24 11:42:10 on ttys007
rsource ~/.zschrc
simon@Simons-MacBook-Pro ~ % rsource ~/.zschrc
zsh: command not found: rsource
xxxx@xxxxx-MacBook-Pro ~ % emote

在这里你可以看到我的 "remote" 命令中的 "r" 已经被 .zshrc 文件的来源弄乱了。

当我忙于一些紧急任务时,这种情况经常发生,有时会连续发生多次。

还有其他人遇到这个问题吗?有没有解决方案或更好的方法我应该采购我的 ~/.zschrc 文件?

交互式 Zsh 在启动时获取文件 $ZDOTDIR/.zshrc,其中 ZDOTDIR 默认为您的主目录。如果你想获取不同的文件(在你的情况下名称为 .zschrc),创建一个文件 ~/.zshrc 内容为

. ~/.zschrc