Delay before 'O' opens a new line?

Vim

Vim Problem Overview


I've noticed that, occasionally, when I use O (capital 'o') to create a new line and go into insert mode, there is a short delay before anything happens.

Is this common? Is there any way to change it?

Both :map O and :imap O show "No mapping found", so I don't think it's a strange mapping.

Vim Solutions


Solution 1 - Vim

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.

Solution 2 - Vim

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.

Solution 3 - Vim

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDavid WoleverView Question on Stackoverflow
Solution 1 - VimJosh LeeView Answer on Stackoverflow
Solution 2 - VimSeanView Answer on Stackoverflow
Solution 3 - VimPeterView Answer on Stackoverflow