Linux
tmux select-pane -LDUR 命令 - 禁用自動循環行為
如果在最初觸發 select-pane 命令的方向上沒有更多窗格,是否可以禁用導致在 tmux 視窗的另一側選擇窗格的行為?
如果沒有,有沒有辦法確定特定方向是否存在任何其他窗格?
如果 tmux 視窗沒有 (v)split 活動視窗並且觸發了選擇窗格命令,則會引發錯誤消息 - 這是預期的行為。
感謝您的回复
將此添加到您的
~/.tmux.conf
:set-option -g default-shell /bin/bash unbind Up unbind Down unbind Right unbind Left bind Up run-shell "if [ $(tmux display-message -p '#{pane_at_top}') -ne 1 ]; then tmux select-pane -U; fi" bind Down run-shell "if [ $(tmux display-message -p '#{pane_at_bottom}') -ne 1 ] ; then tmux select-pane -D; fi" bind Right run-shell "if [ $(tmux display-message -p '#{pane_at_right}') -ne 1 ]; then tmux select-pane -R; fi" bind Left run-shell "if [ $(tmux display-message -p '#{pane_at_left}') -ne 1 ]; then tmux select-pane -L; fi"
基本上,這應該與 tmux 版本 2.6 + 一起執行(之後他們添加了 pane_at_top、pane_at_bottom、pane_at_left、pane_at_right 環境變數。對於 tmux < v2.6,我不完全確定如何實現這一點。
此外,如果您想啟動自定義外殼,請通過
set-option -g default-command fish
(或 zsh 或 csh 或其他)來完成。作為替代方案,如果您想使用非 bash shell 作為您的 tmux 預設 shell,請將其設置為 (set-option -g default-shell
),然後您可以在您選擇的 shell 腳本中編寫上述邏輯。但是,(在我的情況下)使用某些 shell 並不能為您提供單行 if 命令的便利(或者可能只是我對某些 shell 不夠了解,或者多行在執行中確實有效 -貝殼。