为什么Tmux应该将Escape + J误认为<m-j>?另一个扫描码遗留物?

时间:2019-02-25 17:05:01

标签: vim tmux

我发现以下设置会干扰在Vim中使用Vim,这很有趣。 Tmux,当tmux会话应存在多个“窗格”时:

  

顺序(在1-2秒内)按 Escape J   将被解释为prefix + M-j ==>跳到下一个窗格:)

要复制的设置:

unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Use Alt-vim keys without prefix key to switch panes
bind -n M-j select-pane -D 

# Other pieces 
bind -n M-h select-pane -L
bind -n M-k select-pane -U
bind -n M-l select-pane -R

我花了好几个星期甚至几个月的时间来忍受这样一个有趣的事实:当我只想在下面移动3行时,我将看不见活动的光标,因为它可能会跳到下一个窗格,或下一个下一个窗格。

在这篇文章中,我想记录一下Tmux中映射M-h键的荒唐可笑的副作用。并且,希望对“为什么”有一个明确的答案。

1 个答案:

答案 0 :(得分:0)

如果要解决此问题,可以更改tmux愿意在接收转义序列(元或文字Esc)与下一个字符之间等待多长时间,以确定是否要键入tmux命令。是否。

set -sg escape-time 0

有了这个,您必须在按下J时按住Meta键,才能激活tmux命令以跳到下一个窗格。但是,在按前缀序列和命令之间仍然会有无限的时间(例如,可以按,等待几秒钟,然后按d以正常分离)。

这显然会干扰您可能无法同时按下的任何绑定。