tmux:如何使用相同的键切换“on”和“off”选项

时间:2014-09-18 10:16:24

标签: tmux

这是我的tmux.conf

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

如您所见,窗格的同步和非同步选项绑定到两个不同的键。是否可以使用相同的密钥切换同步/非同步?

5 个答案:

答案 0 :(得分:63)

如果您没有明确指定" on"或者"关闭",该选项将被切换。以下就足够了:

bind-key a set-window-option synchronize-panes\; display-message "synchronize-panes is now #{?pane_synchronized,on,off}"

答案 1 :(得分: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

上的鼠标模式切换的变体

答案 2 :(得分:1)

请勿开启或关闭。切换 bind-key a set-window-option synchronize-panes

答案 3 :(得分:0)

基于Frank Schmitt答案的更通用的解决方案:

!/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

该脚本采用选项名称,on值和off值。测试不是很好,但适用于简单的情况,如:

PATH_TO_SCRIPT_ABOVE monitor-activity on off

在.tmux.conf中:

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

答案 4 :(得分:0)

下面是使用^ M来切换鼠标的示例:

disposed