私シェルコマンド実行時の作業ディレクトリの設定現在のtmuxセッション到着現在の作業ディレクトリ。
attach-session -t . -c /path/to/directory
セッション作業ディレクトリの設定方法に多くの回答がある質問に対する回答は、tmuxコマンドプロンプトで実行されているようです。私の(デフォルト)設定ではC-b : attach-session -t . -c /path/to/directory
。
私は手動でtmuxコマンドプロンプトと対話したくありません。主にターゲットディレクトリを入力またはコピーして貼り付ける操作を処理したくないので、単純なコマンドが必要です。私はシェルプロンプトからtmuxにコマンドを送信できることを知っています。たとえば、ステータスバーにメッセージを表示するのではなく、シェルでtmux display-message MESSAGE
コマンドを実行できます。C-b : display-message HELLO
ただし、実行すると、tmux attach-session -t (tmux display-message -p '#S') -c (pwd)
「セッションを慎重に入れ子にする必要があります。$ TMUXをオフにして強制的に実行する必要があります」というエラーが発生します。もちろん、私はtmuxセッションをネストしたくないだけでtmuxのディレクトリを変更したいと思います。現在の会議。
私はtmux send-keys
andを使ってみましたが、tmux-send-prefix
これはキーシーケンスをtmuxに直接渡すのではなく、デフォルトのtty(シェルがそれに応答する)にキーシーケンスを渡すようです。
私はFishシェルを使用していますが、ソリューションがシェルスクリプトに適していると仮定しているので、すべての言語のソリューションに満足しています。
ベストアンサー1
私の考えの1つの解決策は次のとおりです。
tmux bind n new-window -c "/the/dir/you/want"
( "n"を新しいウィンドウを作成するときに使用した実際の文字に置き換えます。)
私が正しく理解したら、すべての新しいウィンドウがRuntimemy-script /some/dir
とRuntimeの間のmy-script /some/other/dir
ディレクトリで開くことを望みます/some/dir
。
私が提案するコマンドは、あなたが最も頻繁に使用している「新しいウィンドウ」バインディングだけを無視します。新しいウィンドウが必要になるたびに手動で実行されますtmux new-window
が、機能しません。
(編集1)ただし、tmux new-window
スクリプトで実行すると費用はかかりませんtmux new-window -c "${the_dir:-(pwd)}"
。