首页 > 解决方案 > tmux 配置中复杂命令/绑定的分隔符

问题描述

我正在寻找一种在我的 tmux 配置中正确创建以下行的方法:

bind -n S-F12 unbind -n S-Left \; unbind -n S-Right \; unbind -n S-Down \; unbind -n S-Up \; unbind -n M-Left \; unbind -n M-Right \; unbind -n M-Down \; unbind -n M-Up \; bind -n S-F12 source "$HOME/.tmux.conf"  \; display-message "Tmux Vim Mode: DISABLED" \; display-message "Tmux Vim Mode: Enabled"

S-F12关键是在执行和打印成功消息时切换一些绑定。问题是消息“Tmux Vim Mode: DISABLED”永远不会被打印出来,这可能是由于绑定的分隔符不明确。

有没有办法让它工作?

ps:我不想创建另一个 tmux 配置文件并使用source.

标签: bashvimtmux

解决方案


你可以尝试的是

bind -n S-F12 unbind -n S-Left \; \
 unbind -n S-Right \; \
 unbind -n S-Down \; \
 unbind -n S-Up \; \
 unbind -n M-Left \; \
 unbind -n M-Right \; \
 unbind -n M-Down \; \
 unbind -n M-Up \; \
 bind -n S-F12 run-shell 'tmux source "$HOME/.tmux.conf"  \; \
                          display-message "Tmux Vim Mode: Enabled"'  \; \
 display-message "Tmux Vim Mode: DISABLED"

\当您使用这种延续时,请确保是行中的最后一个字符。键入Shift-F12将执行解除绑定,并重新绑定到run-shell可以处理sourceanddisplay-message作为内部单个字符串的处理''。我已经将这些信息颠倒过来了,我认为你想要的,但我可能是错的。


推荐阅读