tmux的最新“未发布”版本会在您让终端发送它们后自动识别这些 xterm 样式的键序列(无需更改您的 terminfo 条目)。下一个版本(1.8?)也应该有这个支持。使用适当的tmux 1构建,您所要做的就是绑定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
window 选项。
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 条目编辑的问题可能是因为命名终端类型的行之后的每一行都需要以 Tab 开头。不以制表符开头的行是新终端条目的开始。从技术上讲,NL TAB 序列基本上是这种文件格式的续行;每个条目都是一个逻辑行。
此外,如果您要重新定义 terminfo 条目,请务必-x
与infocmp和tic一起使用以保留用户定义的功能(其中一些是相当标准的)。
1即从sf.net的tmux Git 存储库中的最新代码构建(在可克隆 URL 处git://git.code.sf.net/p/tmux/tmux-code
)。