假设你位于 /very/cool/and/deeply/nested/folder 中。并且你想在同一个文件夹中打开一个新的终端选项卡。
你会怎样做呢?
我使用 Mac OS 和 Zsh。
答案1
答案2
Mac OS X Lion 中现在提供的另一个选项是使用内置功能。它使用“转义序列”来查找当前目录。对我来说,如果我在 .zshrc 中使用以下命令,它就会起作用:
precmd () {print -Pn "\e]2; %~/ \a"}
preexec () {print -Pn "\e]2; %~/ \a"}
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
\e]2;
在标题栏中打印内容的转义序列在哪里。它似乎Terminal.app 从那里获取信息。
更多信息:
答案3
这是一个非常简单的版本,我在 bash 中使用过,在 zsh 中也可以使用。它会在每条命令之后将当前文件夹保存在一个文件中(在我看来不会造成太大影响),并在保存的当前文件夹中打开一个新终端。
添加以下内容.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)"
答案4
这就是在 bash 中执行此操作的方法。
这个 shell 脚本会告诉(使用 Applescript,实际上是安静地告诉)Terminal.app 打开一个新选项卡,然后切换到当前目录:
#!/bin/bash
osascript -e 'tell application "Terminal"' \
-e 'tell application "System Events" to tell process "Terminal" to keystroke "t" using command down' \
-e "do script with command \"cd `pwd`;clear\" in selected tab of the front window" \
-e 'end tell' &> /dev/null
…将上述 shell 脚本放在你的一个目录中$PATH
(即 /usr/local/bin)并确保它是可执行的:
$ chmod +x /usr/local/bin/nt
(来源)