時々、私が作業している特定のプロジェクトとどのウィンドウが関連しているのかを忘れることがあります。この問題は、プロジェクトディレクトリを離れてからキーボードを長時間冷却したままにしたときにcd
最も頻繁に発生します。C-B s
私が探しているディレクトリが表示された作業ディレクトリにないため、セッションリスト()を探しても役に立ちません。
dirs
手動で検索しなくても、シェルのディレクトリスタック()にディレクトリが保存されているウィンドウを見つける方法はありますか?つまり、1つのウィンドウに切り替えて実行してdirs
grepにパイプし、次のウィンドウに切り替えます。洗浄/すすぎ/繰り返す必要はありません。
私はzsh
走っていますautopushd
。
答え1
配列などを使用する代わりに、cdr
ファイルの以前のディレクトリのリストを保持するようにzshを設定して操作を実行できます。dirstack
pushd
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ユーザーでもありません。したがって、これは単なる推測にすぎず、実際にどのように実装するのかを知るために(ここでは説明の代わりに)新しい質問を投稿することもできます。