回答:
利用OH-マイZshのと同様に、あなたの〜/ .zshrcに「OSX」プラグインを追加することは:
plugins=(osx)
OSXのターミナルアプリを使用する場合は、terminalapp
プラグインも追加する必要があります:クレジット
plugins=(osx terminalapp)
iTermを使用する場合は、設定オプションを設定する必要があります(これを機能させるためにzshプラグインが必要ない場合があることに注意してください):クレジット
設定>プロファイル>デフォルト>一般>作業ディレクトリ>前のセッションのディレクトリオプションを再利用
あなたがする必要があるのはそれだけです!
rails
command-nを使用して新しいウィンドウを開こうとすると、ホームディレクトリに戻ります。
Mac OS X Lionで利用できる別のオプションは、組み込み機能を使用することです。「エスケープシーケンス」を使用して、現在のディレクトリを見つけます。私にとって、.zshrcでこれらのコマンドを使用すると動作します。
precmd () {print -Pn "\e]2; %~/ \a"}
preexec () {print -Pn "\e]2; %~/ \a"}
使用することも可能ですPS1
(Bashの場合、このwikiから):
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
どこ\e]2;
がタイトルバーに物事を印刷するためのエスケープシーケンスです。Terminal.appはそこから情報を取得しているようです。
詳しくは:
/etc/bashrc
を使用して、作業ディレクトリをターミナルに通知するための新しいエスケープコードもサポートしていることがわかりますfile:
(ウィンドウ/タブタイトルにはASCII文字のサブセットのみを含めることができます) )。
\e]7;file://hostname/percent-encoded-pathname\a
chpwd () {print -Pn "\e]2; %~/ \a"}
?
これは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)"
これは、bashで行う方法です。
このシェルスクリプトは、Terminal.appに(文字通り静かに、Applescriptを使用して)新しいタブを開き、現在のディレクトリに切り替えるように指示します。
#!/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
…上記のシェルスクリプトをディレクトリ$PATH
(/ usr / local / bin)に配置し、実行可能であることを確認します。
$ chmod +x /usr/local/bin/nt
(ソース)
新しいタブを開いたときにディレクトリを自動的に変更する場合は、dirpersistプラグインを使用します。
osxプラグインは最後のディレクトリのみを保存しますが、コマンドを実行しtab
て新しいタブを開く必要がありますが、これは常に可能とは限りません(たとえば、現在のタブで何かを実行している場合)。
terminalappを.zshrcに追加しても機能しなかったので、プラグインを探しました~/.oh-my-zsh/plugins/terminalapp
。
# This file is intentionally empty.
#
# The terminalapp plugin is deprecated and may be removed in a future release.
# Its functionality has been folded in to the core lib/termsupport.zsh, which
# is loaded for all users. You can remove terminalapp from your $plugins list
# once all your systems are updated to the current version of Oh My Zsh.