在MacVim和终端Vim,一切正常,我没有问题。一旦我跳进tmux并在那里运行Vim,转义键就会开始延迟大约1秒,并在Vim中显示为^[
。
我将按退出键退出插入模式,但在Vim作出反应并将我带回正常模式之前会发生大约1秒的延迟。
如果我输入Ctrl+o
暂时插入模式,它会立即弹出进入正常模式而没有延迟。
如果我键入jj
以进入正常模式(我设置的快捷方式),它仍然需要大约一秒钟。这让我认为问题可能出在Vim而不是tmux
我已经在我的tmux.conf中设置了set -sg escape-time 0
,但它根本没用。
有什么想法吗?
答案 0 :(得分:24)
问题在于tmux转义延迟。下面的tmux设置应该纠正它:
set -s escape-time 0
答案 1 :(得分:4)
问题是转义是所有功能键,箭头,鼠标点击的第一个字符(它们是由终端使用一些转义序列发送到vim),...因此vim最多等待下一个字符'ttimeoutlen'(' timeoutlen'if'ttimeoutlen'是-1)毫秒,以确保你的意思是按下转义而不是,例如,<F1>
。没有办法摆脱这种延迟,但你可以缩小范围:
set timeout timeoutlen=1000 ttimeoutlen=100
。这样它将等待1秒钟才能完成映射,但终端只需0.1秒即可完成发送转义序列。