在同一目录中打开新标签页

在同一目录中打开新标签页

假设你位于 /very/cool/and/deeply/nested/folder 中。并且你想在同一个文件夹中打开一个新的终端选项卡。

你会怎样做呢?

我使用 Mac OS 和 Zsh。

答案1

使用噢我的天啊并在你的 ~/.zshrc 中添加“osx”插件,如下所示:

plugins=(osx)

如果您使用 OSX 的终端应用程序,您还需要添加terminalapp插件:信用

plugins=(osx terminalapp)

如果你使用 iTerm,则需要设置配置选项(请注意,你可能不需要 zsh 插件才能工作):信用

首选项 > 配置文件 > 默认 > 常规 > 工作目录 > 重复使用上一个会话的目录选项

iTerm2 首选项面板更新以重用以前的会话目录。

这就是您需要做的全部!

答案2

Mac OS X Lion 中现在提供的另一个选项是使用内置功能。它使用“转义序列”来查找当前目录。对我来说,如果我在 .zshrc 中使用以下命令,它就会起作用:

precmd () {print -Pn "\e]2; %~/ \a"}
preexec () {print -Pn "\e]2; %~/ \a"}

也可以使用PS1(对于 Bash,来自本维基):

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

来源

相关内容