2014-09-18 4 views
25

이와 "OFF"옵션 "의"전환하는 방법을 당신이 볼 수 있듯이 내 tmux.conf의 비트가TMUX는 : 동일한 키

cat tmux.conf 
... 
bind a set-window-option synchronize-panes on 
bind b set-window-option synchronize-panes off 

, 창에 대한 동기화 및 unsync 옵션이 결합되어있다 두 개의 다른 키. 같은 키로 sync/unsync를 토글 할 수 있습니까?

답변

44

명시 적으로 "on"또는 "off"를 지정하지 않으면 옵션이 토글됩니다. 다음은 충분 :

bind a set-window-option synchronize-panes

3

run-shelltmux show-option의 조합으로 가능해야이 같은 (TMUX 2.3에서 테스트) :

bind a run-shell "if [[ `tmux show-options -w | grep 'synchronize-panes.*on'` ]]; then toggle=off; else export toggle=on; fi; tmux display-message \"sync panes tmux: \$toggle\"; tmux set-option -w synchronize-panes \$toggle &> /dev/null" 

(이것은 TMux user mailing list에서 발견 마우스 모드 전환의 변형입니다)
+0

감사합니다. 그냥 이걸 찾고. 여기에 내가 정착 한 마우스 토글이있다 : bind m run-shell "if [[tmux showw | grep 모드 - 마우스. * on']]; 토글 = off; 그렇지 않으면 export toggle = on; fi; tmux display- mouse-select-pane의 마우스 오른쪽 버튼 메뉴에서 마우스 오른쪽 버튼을 누른 상태에서 마우스 오른쪽 버튼을 클릭 한 상태에서 마우스 오른쪽 버튼을 클릭하면 tmux set -g \ $ cmd \ $ toggle &>/dev/null; done; " –

+0

Ojp의 답은 더 간단하지만 tmux 1.8의 모드 - 마우스 설정에서 나에게 도움이되지 않았습니다. 설정이 켜기/끄기/복사 모드 이외의 값을 가질 수 있기 때문일 수 있습니다. 이 방법은 여기에 해당됩니다. –

-1

Tmux는 기본적으로이 기능을 활성화하지 않습니다. 그것은 스크립트를 작성하여 수행 할 수 있지만 사소한 것은 아닙니다.

0

보다 일반적인 솔루션을 프랭크 슈미트에 의한 답변에 따라 :

!/usr/bin/bash 

USAGE="USAGE: $0 OPTION_NAME ON_STATE OFF_STATE" 

OPTION_NAME=$1 
ON_STATE=$2 
OFF_STATE=$3 

if [[ "$#" != 3 ]]; then 
    echo $USAGE 
    exit 1 
fi 

if [[ `tmux show-option -w | grep "$OPTION_NAME $ON_STATE"` ]]; then 
    OPTION_VALUE=$OFF_STATE 
else 
    OPTION_VALUE=$ON_STATE 
fi 

tmux display-message "monitor activity: $OPTION_NAME $OPTION_VALUE" 
tmux set-option -w $OPTION_NAME $OPTION_VALUE > /dev/null 

스크립트는 가치와 오프 값에, 옵션의 이름을합니다. 아주 잘 테스트하지만 같은 간단한 경우 작동하지 : 당신의 .tmux.conf에서

PATH_TO_SCRIPT_ABOVE monitor-activity on off 

: 마우스 모드 전환에 대한 링크

bind-key <SOME_KEY> run-shell "tmux_toggle_option monitor-activity on off"