非循环 tmux 窗格选择

非循环 tmux 窗格选择

当我在多窗格 tmux 窗口中时,在最左侧的窗格上,按下快捷键移动到左侧的窗格将循环将焦点移动到最右侧的窗格。在这种情况下,我希望此快捷键不采取任何行动,即停留在已选择的最左侧窗格中。

我读过手册页。还有一章关于窗格遍历在《Tmux 之道》一书中,但没有提到这一点。

tmux 中的命令select-pane有很多开关,但是没有记录:

$ tmux select-pane --help
usage: select-pane [-DdegLlMmRU] [-P style] [-T title] [-t target-pane]

如果相关的话,我选择窗格的快捷方式如下:

bind -n C-M-h select-pane -L
bind -n C-M-j select-pane -D
bind -n C-M-k select-pane -U
bind -n C-M-l select-pane -R

答案1

使用 、pane_at_left和格式相当容易。pane_at_rightpane_at_toppane_at_bottom

bind -n C-M-h if-shell -bF '#{pane_at_left}'   '' 'select-pane -L'
bind -n C-M-j if-shell -bF '#{pane_at_bottom}' '' 'select-pane -D'
bind -n C-M-k if-shell -bF '#{pane_at_top}'    '' 'select-pane -U'
bind -n C-M-l if-shell -bF '#{pane_at_right}'  '' 'select-pane -R'

这些格式是在 tmux 2.6 中引入的。在之前的版本中,您仍然可以通过运行脚本 ( )来获得相同的效果,这些脚本从 tmux ( ) 中run-shell检索window_widthwindow_heightpane_leftpane_right和,执行计算和比较,并决定是否进行转换。pane_toppane_bottomtmux display -p …tmux select-pane …

比较我的这个答案。那里的脚本可以在几个地方使用新格式。无论如何我都需要其他值,所以我决定让脚本与旧版 tmux 兼容。

相关内容