Se a tecla anterior pressionada era ESC, isso ocorre porque existem chaves que podem gerar seqüências de escape começando com ESC O. Por exemplo, dependendo do modo da tecla de cursor, a tecla de seta para cima pode gerar a seqüência de escape ESC O A.
Se ele vir uma seqüência de escape parcial, o vim esperará por um tempo limite curto para ver se outro caractere recebido corresponde a uma das seqüências de escape definidas para o seu tipo de terminal. Se não, tratará os caracteres como teclas separadas. Você pode testar isso inserindo uma letra maiúscula A enquanto aguarda a linha abrir para ver se ela é tratada como uma seta para cima.
Existem algumas configurações de vim que podem ser usadas para controlar isso. :set ttimeoutlen=100
alterará o tempo limite da sequência de escape para 100 ms. :set noesckeys
desativará completamente o reconhecimento de chaves que enviam uma seqüência de escape quando no modo de inserção. Além disso, o modo compatível com o vi não terá esse problema porque as teclas estão desativadas nesse modo - é por isso que vim -u NONE
funciona.