繁体   English   中英

在tmux中绑定Ctrl + Tab和Ctrl + Shift + Tab

[英]Bind Ctrl+Tab and Ctrl+Shift+Tab in tmux

我正在尝试获取Ctrl + TabCtrl + Shift + Tab绑定以在tmux会话中工作(我也在使用PuTTY)。

我已经经历过不得不重新编译PuTTY的痛苦,这样它才能发送ctrl并正确移位 使用ctrl + v之后 ,我可以看到分别为ctrl + tabctrl + shift + tab发送了^[[27;5;9~^[[27;6;9~ 9〜] 有什么办法可以将这些绑定到tmux内部的下一个窗口和上一个窗口?

编辑:经过一些研究,我想我可能必须配置xterm来包括那些键码。 知道我该怎么做吗?

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

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

到最后,除了现在它给了我一个错误。 条目不以第一列中的终端名称开头

一旦您的终端发送了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窗口选项。

set-option -gw xterm-keys on

(如果愿意,可以使用-w而不是-gw在每个窗口的基础上执行此-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条目,请确保将-xinfocmptic一起使用以保留用户定义的功能(其中一些功能是非常标准的)。


1即从sf.nettmux Git存储库中的最新代码构建 (可克隆URL git://git.code.sf.net/p/tmux/tmux-code )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM