我想一个获得CTRL + TAB和CTRL + SHIFT + 选项卡绑定到TMUX会话(我还使用腻子)的内部工作。
我已经通过重新编译腻子所以它会发送Ctrl和正确转移的痛苦去。 使用CTRL + V后,我能看到^[[27;5;9~
和^[[27;6;9~
正在分别发送用于CTRL + TAB和CTRL + SHIFT + 标签 。 有没有什么办法可以让这些势必会在下一个窗口和TMUX内以前窗口?
编辑:经过一番研究,我想我可能必须配置的xterm,包括那些keycodes。 任何想法,我怎么会去这样做呢?
EDIT2:所以我发现我可以检索infocmp并重新编译。 我加
kctab=\E[27;5;9~, kcstab=\E[27;6;9~,
以它的结束,但现在它给我一个错误。 “ 项不与列一个终端名称开头 ”
一旦你有你的终端发送它们(不需要改变你的terminfo项)TMUX最近“未发行的”版本并自动识别那些xterm的样式键序列。 下一个发布版本(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沿着里面TMUX正在运行的程序,这些(和其他)的xterm风格的按键顺序传递,那么你将需要启用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
-as正常, xterm-keys
必须能够发送这些的xterm风格的按键顺序)。
与你的terminfo项编辑的问题,可能是因为名称的终端类型需要开始一个标签一前一后的每一行。 不以制表符开头的行是一个新的终端入口的开始。 技术上,NL TAB序列基本上是在该文件格式中的行延续; 每个条目是一个单一的逻辑线路。
此外,如果你正在重新定义terminfo项,请务必使用-x
与infocmp和抽动保存用户自定义功能(其中一些是相当标准)。
1,即从最近代码构建TMUX的Git仓库sf.net (在克隆能够网址git://git.code.sf.net/p/tmux/tmux-code
)。