ディレクトリスタックで、ディレクトリを含むtmuxウィンドウを見つけます。

ディレクトリスタックで、ディレクトリを含むtmuxウィンドウを見つけます。

時々、私が作業している特定のプロジェクトとどのウィンドウが関連しているのかを忘れることがあります。この問題は、プロジェクトディレクトリを離れてからキーボードを長時間冷却したままにしたときにcd最も頻繁に発生します。C-B s私が探しているディレクトリが表示された作業ディレクトリにないため、セッションリスト()を探しても役に立ちません。

dirs手動で検索しなくても、シェルのディレクトリスタック()にディレクトリが保存されているウィンドウを見つける方法はありますか?つまり、1つのウィンドウに切り替えて実行してdirsgrepにパイプし、次のウィンドウに切り替えます。洗浄/すすぎ/繰り返す必要はありません。

私はzsh走っていますautopushd

答え1

配列などを使用する代わりに、cdrファイルの以前のディレクトリのリストを保持するようにzshを設定して操作を実行できます。dirstackpushd

man zshall部分的に最近使用したディレクトリの記憶、フックを取り付けます。

autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
add-zsh-hook chpwd chpwd_recent_dirs

次に、変数にrecent-dirs-fileリストを保存するファイル名を設定します。使用して:

zstyle ':chpwd:*' recent-dirs-file ~/.chpwd-recent-dirs-${TTY##*/} +

各ttyごとに別々のファイルを受け取ります。

したがって、ディレクトリを検索するには、ファイルを介してgrepし、一致するファイル名からtty名を抽出し、tmuxにそのttyに切り替えるように依頼します。私はzshユーザーでもなくtmuxユーザーでもありません。したがって、これは単なる推測にすぎず、実際にどのように実装するのかを知るために(ここでは説明の代わりに)新しい質問を投稿することもできます。

関連情報