Ner*_*ian 44 terminal zsh macos
假设你在 /very/cool/and/deeply/nested/folder 。并且您想在同一文件夹中打开一个新的终端选项卡。
你会怎么做?
我使用 Mac OS 和 Zsh。
小智 66
使用Oh-My-Zsh并在您的 ~/.zshrc 中添加“osx”插件,例如:
plugins=(osx)
Run Code Online (Sandbox Code Playgroud)
如果您使用 OSX 的终端应用程序,您还需要添加terminalapp插件:信用
plugins=(osx terminalapp)
Run Code Online (Sandbox Code Playgroud)
如果您使用 iTerm,您需要设置一个配置选项(请注意,您可能不需要 zsh 插件才能使其工作):信用
Preferences > Profiles > Default > General > Working Directory > Reuse previous session's directory 选项

这就是你需要做的!
Tim*_*Tim 23
Mac OS X Lion 中现在可用的另一个选项是使用内置功能。它使用“转义序列”来找出当前目录。对我来说,如果我在我的 .zshrc 中使用这些命令,它会起作用:
precmd () {print -Pn "\e]2; %~/ \a"}
preexec () {print -Pn "\e]2; %~/ \a"}
Run Code Online (Sandbox Code Playgroud)
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
Run Code Online (Sandbox Code Playgroud)
在\e]2;标题栏中打印内容的转义序列在哪里。这似乎是Terminal.app从那里获取其信息。
更多信息:
小智 5
这是一个非常简单的版本,我在 bash 中使用过,也可以在 zsh 中使用。它将当前文件夹保存在一个文件中,在每个命令之后(不会伤害太多 IMO)并在保存的当前文件夹中打开一个新终端。
将以下内容添加到.zshrc
# 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)