これは私が達成しようとしているプロセスと同じくらい簡単なようですが、検索した結果は何もありませんでした。ウィンドウを分割し、新しく作成されたウィンドウにキーを送信するキーバインディングを作成したいと思います。ただし、send-keysコマンドを使用するにはウィンドウIDが必要です。問題は、現在のウィンドウにいくつのウィンドウが開いているかわからないことです。したがって、元のウィンドウで実行されているコードは、新しいウィンドウインデックスが何であるかを推論できないということです。この新しいインデックスまたはIDを見つける方法はありますか(どちらもターゲットとして使用できます)。
ありがとうございます。
答え1
シェルスクリプトに特に便利な別の方法です。
tmux split-window -P -F "#{pane_id}"
ウィンドウID(例:%4)をstdoutとして出力します。
だからあなたはできます
bash_var=$(tmux split-window -P -F "#{pane_id}")
シェル/bash変数にキャプチャする場合。
からインポートhttps://github.com/tmux-plugins/tmux-sidebar/blob/master/scripts/toggle.sh
答え2
tmuxでは、各新しいウィンドウには環境変数を使用してアクセスできる一意の値があります。TMUX_PANE。
tmux display -pt "${TMUX_PANE:?}" '#{pane_index}'
これでウィンドウ番号が表示されます。
答え3
名前付きパイプを介して新しいウィンドウのIDを再送信してこれを行います。
mkfifo pane_id
tmux split-window -h \; send-keys 'echo $TMUX_PANE > pane_id' Enter \; select-pane -t "$TMUX_PANE"
cat pane_id
答え4
あなたはあなたの問題を過度に考えています。これにより、split-window
新しいウィンドウが表示されますsend-keys
。すでにtmuxにあるので、バインディングでtmuxを呼び出すべきではありません。努力する
bind-key s split-window \; send-keys "pwd" Enter