我试图直接在 tmux 中当前选定的窗格下获取窗格的索引,以便我可以tmux run-shell从 vim 调用该窗格。
假设我有一个如下所示的 tmux 窗格布局:
|---------------------------|
| | |
| 0 | 1 |
| | |
|---------------------------|
| |
| 2 |
| |
|---------------------------|
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过运行以下命令获取当前的窗格编号:
tmux list-panes | grep "active" | cut -d':' -f1
对于这种情况,我们会说它是0
这是我想到的第一个获取索引的解决方案:
#!/bin/bash
CUR_PANE=$(tmux list-panes | grep "active" | cut -d':' -f1)
tmux select-pane -D
UNDER_PANE=$(tmux list-panes | grep "active" | cut -d':' -f1)
tmux select-pane -U
# In case the script is used on the bottom
# pane and `select-pane` wrapped around
if [ ! $UNDER_PANE -gt $CUR_PANE ]; then
echo "No pane under current."
exit 1
fi
echo $CUR_PANE
echo $UNDER_PANE
Run Code Online (Sandbox Code Playgroud)
但这对我来说似乎是一种快速而肮脏的方法,因为我实际上必须切换到窗格,然后返回到原始窗格。
有没有一种更干净的方法可以在不将当前窗格留在 tmux 中的情况下执行此操作?
您可以使用tmux display以下别名tmux display-message:参考
$ tmux display -p -t '{down-of}' '#{pane_index}'
Run Code Online (Sandbox Code Playgroud)
-t {down-of}表示从活动窗格下方的窗格中获取信息:参考
#{pane_index}表示使用面板索引格式化消息:参考
-p表示将消息写入标准输出
| 归档时间: |
|
| 查看次数: |
1487 次 |
| 最近记录: |