tags:

views:

211

answers:

3

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.

A: 

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
Peter
I second this - at work our home directories are NFS-mounted, and I see this kind of delay a lot.
Jefromi
...of course, if it's only for O, not o, it's certainly the escape key sequence thing, as jleedev says!
Jefromi
Well, even though this answer directly doesnt address OP, I feel its still relevant. Cannot agree with the person who down-voted.
jeffjose
+9  A: 

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.

jleedev
Cool, thanks!Also, for anyone else who might be reading this: before turning it off, check the help page for `'esckeys'` - it's what lets you use, eg, the arrow keys in insert mode. Setting `'timeoutlen'` worked nicely for me.
David Wolever
+1  A: 

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.

Sean