2013-03-18 92 views
36

我想一个获得CTRL +标签 CTRL ++标签结合到TMUX会话里面工作(我也使用PuTTY)。绑定Ctrl + Tab键和Ctrl + Shift + Tab键在TMUX

我已经通过重新编译腻子的痛苦竟然将派遣CTRL转变正确。使用CTRL +v,而之后我能看到^[[27;5;9~^[[27;6;9~被分别送到了CTRL +标签 CTRL ++标签。有什么办法可以让这些绑定到tmux内的next-window和previous-window?

编辑: 经过一番研究,我想我可能必须配置xterm以包含这些键码。任何想法我会怎么做呢?

编辑2: 所以我发现我可以检索infocmp并重新编译它。我加

kctab=\E[27;5;9~, kcstab=\E[27;6;9~,

到它的结束,但现在它给我一个错误。 “项不与列终端名称开头一个

+0

有关如何使用Ctrl-Tab支持重新编译PuTTY的说明。 http://scnr.net/blog/index.php/archives/61 – 2015-03-23 17:06:50

+0

谢谢你的问题。 – CodyChan 2015-04-23 07:59:08

回答

35

最近的“未发行”的TMUX版本,一旦你有你的终端把他们(无需改变你的terminfo就自动识别那些xterm的样式键序列条目)。下一个版本(1.8?)也应该有这种支持。随着TMUX 适当的构建,所有你所要做的就是绑定钥匙放在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条目编辑的问题可能是因为命名终端类型之后的每行都需要以Tab开头。不以标签开头的行是新终端条目的开头。从技术上讲,NL TAB序列基本上是这种文件格式的续行;每个条目都是一条逻辑线。

另外,如果你正在重新定义terminfo项,请务必使用-xinfocmp抽动保存用户自定义功能(其中有些是相当标准)。


即根据tmux Git repository at sf.net(位于可克隆的URL git://git.code.sf.net/p/tmux/tmux-code)中的近期代码构建。

+0

tmux无法识别C-Tab和CS-Tab作为有效的密钥(说这是一个未知的密钥)。并感谢提供的头,我恢复了我的terminfo变化,因为说实话,我真的不知道我是什么正在做。 – dook 2013-03-19 05:17:50

+0

Oops,C-Tab(和C-S-Tab)在我的* tmux *版本中被识别,但该功能不是最新版本(1.7)的一部分。如果你构建了最新版本的尚未发布的代码(即从git://git.code.sf.net/p/tmux/tmux-code),那么它将支持这些密钥。对于困惑抱歉!我会更新答案文字来描述这种情况。 – 2013-03-19 06:29:33

+0

谢谢你克里斯!我会让你知道,一旦我得到它重新编译和安装 – dook 2013-03-19 06:57:24