我想知道是否有一种在 ./tmux.conf 中定义状态变量的方法,这样根据这个变量,键盘绑定将调用不同的命令。
例如,我想用来M-F
切换 tmux 中窗格的最大化(如果窗格未最大化,MF 会将其最大化,否则它将取消最大化)
这是我到目前为止的伪代码:
# Maximize pane: -------
# IF PANE_MAXIMIZED=False:
# THEN: PANE_MAXIMIZED=True, and:
bind -n M-F new-window -d -n tmux-zoom \; swap-pane -s tmux-zoom.0 \; select-window -t tmux-zoom
# Unmaximize pane -------
# IF PANE_MAXIMIZED=True:
# THEN: PANE_MAXIMIZED=False, and:
bind -n M-F last-window \; swap-pane -s tmux-zoom.0 \; kill-window -t tmux-zoom
答案1
你可以使用该run-shell
命令执行任意shell命令,所以这当然是可能的。这个答案有一个很好的例子。
如果您要寻找的只是切换最大化窗口,从版本 1.8 开始,这是一个本机 tmux 功能,通过使用标志-Z
来实现resize-pane
(请参阅这个关于超级用户的答案)。
它在我的安装中默认绑定tmux-prefix(z通过 OS X 上的 Homebrew)。