最近的"未发布"版本的tmux会在终端发送这些xterm样式的密钥序列后自动识别它们(无需更改terminfo条目).下一版本(1.8?)我们也应该得到这种支持.使用tmux1的适当构建,您只需在tmux配置中绑定密钥:
bind-key C-Tab next-window
bind-key C-S-Tab previous-window
您仍然需要在这些键之前键入前缀键.
(注意:~/.tmux.conf
仅在服务器启动时处理.如果对其进行更改,则需要退出所有会话并重新启动服务器,或者使用(例如)tmux source ~/.tmux.conf
让现有服务器重新处理文件.)
此外,如果希望tmux将这些(和其他)xterm样式的键序列传递给tmux内部运行的程序,则需要启用xterm-keys
窗口选项.
set-option -gw xterm-keys on
(如果您愿意,您可以在每个窗口的基础上使用-w
而不是-gw
.)
如果希望能够在不键入前缀的情况下使用这些键,则可以使用"无前缀"绑定:
bind-key -n C-Tab next-window
bind-key -n C-S-Tab previous-window
不过,这或多或少会"专用"tmux键.很难将这些键键入tmux中运行的任何程序(例如,您必须像正常情况一样使用tmux命令send-keys C-Tab
,必须启用xterm-keys
才能发送这些xterm样式的键序列).
terminfo条目编辑的问题可能是因为命名端子类型的那一行后面的每一行都需要以选项卡开头.不以制表符开头的行是新终端条目的开头.从技术上讲,NL制表符序列基本上是这种文件格式中的一行延续;每个条目都是一个逻辑行.
此外,如果要重新定义terminfo条目,请确保将-x
与infocmp和tic一起使用,以保留用户定义的功能(其中一些功能相当标准).
1即根据tmux Git repository at sf.net中的最新代码构建(位于可克隆的URL git://git.code.sf.net/p/tmux/tmux-code
).