当我在多窗格 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_right
pane_at_top
pane_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_width
、window_height
、pane_left
、pane_right
和,执行计算和比较,并决定是否进行转换。pane_top
pane_bottom
tmux display -p …
tmux select-pane …
比较我的这个答案。那里的脚本可以在几个地方使用新格式。无论如何我都需要其他值,所以我决定让脚本与旧版 tmux 兼容。