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