2013-10-06 31 views
3

当我在Tmux中运行Vim时,我必须按Tab键两次以获得按键注册。我搜索了一段时间,但都无济于事,当我在Tmux之外使用Vim时,我不会解决这个问题。 Tab键是否保留给我不知道的东西?运行Tmux时Vim的标签问题

我该如何解决这个问题?

+1

这不正常;它只是* Vim *里面的* tmux *中的一个问题,或者* tmux *中的其他程序受到了影响(例如,将Tab C-d C-d键入'xxd'只显示一个'09'字节)?你的* tmux *和* Vim *配置是什么样的? –

+0

这不仅仅是一个vim问题。我在zsh中选项卡完成时遇到了同样的问题。除了将C-b重新映射到C-i之外,我还没有真正配置tmux中的任何内容。 '设置-g前缀C-i' '解除绑定C-B' '绑定C-我送-prefix' 编辑:关于格式 – Brandon

+0

对不起你提到的XXD给我'Tab0000000:5461 62 Tab',内外TMUX之外。 – Brandon

回答

5

我还没有真正配置tmux中的任何东西,除了将C-b重新映射到C-i。

set -g prefix C-i 
unbind C-b 
bind C-i send-prefix 

虽然标签控制 - i通常在GUI环境区分时,它们产生在等终端仿真器基于TTY的环境相同的字符。该字符是U + 0009,这是Tab控制字符。它被表示为ASCII,UTF-8和许多其他编码中的单字节0x09。所有“C0 control codes”(ASCII 0-31)都有将Control键与另一个键(主要是字母,还有一些符号)组合在一起的键盘等效物。 Tab控制字符由控制 - i生成。

您可以通过查看tmux show-options -g | grep prefix的输出来验证(至少)tmux将C-i和Tab视为相同。即使您在配置中将其指定为C-i,您也会看到它已将前缀设置为名为Tab的密钥。您还可以注意到tmux list-keys | grep prefix输出中的相同规范化。

如果您想要发送一个到内部运行的程序tmux,如果您不想键入Tab两次,则可能需要选择不同的前缀。