/ very/cool/and/deeply/nested/folderにいるとします。また、同じフォルダで新しいターミナルタブを開きたいとします。
どうしますか
Mac OSとZshを使用しています。
Mac OS X Lionで現在利用可能なもう1つのオプションは、組み込み機能を使用することです。それは現在のディレクトリを見つけるために「エスケープシーケンス」を使用します。私にとっては、.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がそこから情報を取得しているようですようです。
詳しくは:
これは私が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)"
gdirs はほとんどそれを行う方法のようです:新しいタブ、次にgdirsで深いディレクトリと出来上がりを選択します。私の最初のアイデアは、すべてのタブ間でディレクトリスタックを共有し、新しいタブの後にcd〜1を実行することでしたが、zshの各インスタンスが独自のインスタンスを保持しているようで、その方法を見つけることができません。履歴の共有は共通のファイルを介して行われるため、おそらくここでも行うことができます...
上記のPieterのコメントによれば、plugins=(git osx)
プラグインがインストールされたら、tab
と入力するだけで、現在のディレクトリに新しいタブが開きます。
これは、bashで行う方法です。
このシェルスクリプトは、(文字通り静かに、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
…上記のシェルスクリプトを$PATH
(つまり、/ usr/local/bin)で、実行可能であることを確認します。
$ chmod +x /usr/local/bin/nt
( ソース )
同じタブで新しいタブが既に開いています(Cmd + T)。新しいウィンドウ(Cmd + N)の場合、Pieterのソリューションが適切です。
[設定]> [プロファイル]> [デフォルト]> [一般]> [作業ディレクトリ]> [前のセッションのディレクトリを再利用]オプション
.zshrcにterminalappを追加してもうまくいかなかったので、プラグイン~/.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.
新しいタブを開いたときにディレクトリを自動的に変更する場合は、 dirpersist プラグインを使用します。
Osxプラグインは最後のディレクトリのみを保存しますが、コマンドtab
を実行して新しいタブを開く必要がありますが、これは常に可能とは限りません(たとえば、現在のタブで何かを実行している場合)。
設定ファイルを変更したり、新しいプラグインをインストールしたりせずに、この新しいタブを今すぐ開く必要がある場合は、次のコマンドを実行します。
pwd | pbcopy
次に、新しいターミナルタブを手動で(⌘Tを使用して)、新しいタブで開きます。
cd "`pbpaste`"
警告:システムクリップボードの内容を上書きします。
クリップボードを上書きしない別の長い方法:
pwd > $TMPDIR/wd
新しいタブを開きます。
cd "$(cat $TMPDIR/wd)"
rm -f $TMPDIR/wd