Linux

tmux select-pane -LDUR 命令 - 禁用自動循環行為

  • March 22, 2020

如果在最初觸發 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 不夠了解,或者多行在執行中確實有效 -貝殼。

來源:我開始的github問題執行緒

引用自:https://unix.stackexchange.com/questions/215688