-->

绑定Ctrl + Tab键和Ctrl + Shift + Tab键在TMUX(Bind Ctrl+T

2019-07-21 20:16发布

我想一个获得CTRL + TABCTRL + SHIFT + 选项卡绑定到TMUX会话(我还使用腻子)的内部工作。

我已经通过重新编译腻子所以它会发送Ctrl和正确转移的痛苦去。 使用CTRL + V后,我能看到^[[27;5;9~^[[27;6;9~正在分别发送用于CTRL + TABCTRL + SHIFT + 标签 。 有没有什么办法可以让这些势必会在下一个窗口和TMUX内以前窗口?

编辑:经过一番研究,我想我可能必须配置的xterm,包括那些keycodes。 任何想法,我怎么会去这样做呢?

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

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

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

Answer 1:

一旦你有你的终端发送它们(不需要改变你的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项,请务必使用-xinfocmp抽动保存用户自定义功能(其中一些是相当标准)。


1,即从最近代码构建TMUX的Git仓库sf.net (在克隆能够网址git://git.code.sf.net/p/tmux/tmux-code )。



文章来源: Bind Ctrl+Tab and Ctrl+Shift+Tab in tmux