在“ O”开通新线路之前延迟?

我注意到,有时候,当我使用 O(大写‘ o’)创建一个新行并进入插入模式时,在发生任何事情之前会有一个短暂的延迟。

这很常见吗? 有什么办法可以改变吗?

:map O:imap O都显示“没有找到映射”,所以我不认为这是一个奇怪的映射。

10676 次浏览

I suspect it's when you have to write the swapfile to disk. Make sure that you are running vim on a computer with fast disk access; if you have to use a shared filesystem you can try moving the swap file using

:set directory=/path/to/local/dir

It's because the 'esckeys' option is enabled (a consequence of nocompatible as I just discovered). When you press ^[O, there's a small delay as it figures out if you're using an arrow/function key or if you just meant those two keys in sequence.

One solution is to disable that option and give up on the arrow keys in insert mode.
Another is to set 'timeoutlen' to something less than 1000, maybe 100 (but be careful over slow connections).
Another is to use ^C instead of ^[ to leave insert mode.

It happens if you press "O" right after the Escape key, right? I always assumed it was because the terminal driver was waiting a bit to see if you were going to complete an escape sequence.