这似乎是我试图完成的一个足够简单的过程,但我的搜索却无济于事。我想创建一个键绑定,它可以分割窗口,然后将键发送到新创建的窗格;但是我需要窗格 id 与 send-keys 命令一起使用。问题是我不会知道窗口中当前打开了多少个窗格;因此我不知道在原始窗格中运行的代码无法推断出新窗格索引是什么。有什么方法可以找到这个新的索引或id(两者都可以用作目标)?
谢谢。
答案1
另一种方法,对于 shell 脚本特别有用。
tmux split-window -P -F "#{pane_id}"
将输出窗格 id(例如 %4)到 stdout
所以你可以做
bash_var=$(tmux split-window -P -F "#{pane_id}")
如果你想在 shell/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