有没有办法在〜/ .tmux.conf中执行此操作?
答案 0 :(得分:14)
如果其他所有内容都配置正确,则应该只需将其放入.tmux.conf
:
set-option -g prefix Home
注意:除非您手动“提取”.tmux.conf
,否则只有在重新启动 tmux 服务器时才会对文件进行更改。干净地退出所有窗格,窗口(从而关闭所有会话并让服务器退出),或者使用tmux kill-server
,然后开始一个全新的会话。
仅当您的终端仿真器发送的转义序列与您连接到 tmux <时生效的khome
值的terminfo数据库条目的TERM
字段匹配时才有效/ em> session(即{em> tmux 之外的TERM
)。
您可以通过在cat -v
中键入Home键(和换行符)来验证终端模拟器发送的转义序列(您可以使用 Control cat > - C 一旦显示序列)。常见回复可能是^[[1~
或^[OH
。
TERM
环境变量告诉基于terminfo的程序(如 tmux )终端模拟器(据称)理解和生成的转义序列。 Home键生成的转义序列存储在khome
字段中。您可以使用 tput 或 infocmp 来提取字段的值(两者都使用当前的TERM
,除非它们被赋予覆盖的终端声明。)
tput khome | cat -v ; echo
infocmp -1 | grep -F khome
如果终端仿真器生成的转义序列与声明的khome
值的TERM
条目不匹配,那么可以通过以下几种方法来解决问题:< / p>
TERM
值。terminal-overrides
选项,可用于覆盖各种TERM
值的各个terminfo字段。例如,如果您的终端模拟器没有为Home发送序列,但您可以配置一个序列,并且TERM
的terminfo条目没有khome
字段,那么您可以
告诉您的终端模拟器发送ESC [
1
~
,并使用termname:khome=\033[1~
作为terminal-overrides
值(其中termname
是适当的模式匹配您的TERM值。)
E.g。在.tmux.conf中:
set-option -g terminal-overrides "xterm-color:khome=\033[1~"
您可以使用tmux server-info
检查 tmux 的terminfo条目的运行时副本。
注意:如上所述(prefix
更改),让此更改生效的最简单方法是重新启动 tmux 服务器。