Mengapa vim menunda sesaat setiap kali saya menggunakan perintah 'O' (buka baris baru di atas dan masukkan)?

26

Ketika saya menggunakan sebagian besar perintah, perintah itu langsung berlaku. Ketika saya menggunakan Operintah, saya melihat "O" mengganti karakter saat ini sekitar satu detik, kemudian karakter saat ini kembali, dan baris baru dimasukkan dan dibuka.

Saya tidak memiliki masalah dengan operintah tersebut (buka baris baru di bawah ini dan masukkan).

Jika ada bedanya, saya menggunakan vimdari bash, di Terminal Gnome pada Ubuntu 10,04.

Matius
sumber

Jawaban:

27

Jika tombol sebelumnya yang ditekan adalah ESC, ini karena ada tombol yang dapat menghasilkan urutan escape dimulai dengan ESC O. Misalnya tergantung pada mode kunci kursor, tombol panah atas dapat menghasilkan urutan escape ESC O A.

Jika ia melihat urutan pelarian sebagian, vim akan menunggu waktu tunggu singkat untuk melihat apakah karakter lain diterima yang cocok dengan salah satu urutan pelarian yang ditentukan untuk jenis terminal Anda. Jika tidak, itu akan memperlakukan karakter sebagai penekanan tombol yang terpisah. Anda dapat menguji ini dengan memasukkan huruf kapital A sambil menunggu garis terbuka untuk melihat apakah itu memperlakukannya sebagai panah atas.

Ada beberapa pengaturan vim yang dapat digunakan untuk mengontrol ini. :set ttimeoutlen=100akan mengubah batas waktu urutan escape ke 100ms. :set noesckeysakan sepenuhnya menonaktifkan pengenalan kunci yang mengirim urutan pelarian saat dalam mode sisipkan. Juga, mode vi-kompatibel tidak akan memiliki masalah ini karena penjaga tidak aktif dalam mode itu - itu sebabnya vim -u NONEbekerja.

mark4o
sumber
Hanya untuk memperjelas, "percobaan" saya dengan file baris 140k berada dalam mode vim penuh dengan pelengkap standar saya plug-in dan tipe file. Saya dapat melihat di mana Anda mungkin telah menyimpulkan bahwa saya telah menggunakan -u NONEtetapi kami masih kurang konfirmasi dari OP.
msw
Wow! itu agak menjengkelkan untuk sementara waktu tetapi saya tidak pernah memikirkannya. masuk akal sekarang. Esc OA memang berfungsi seperti panah atas.
Vitaly Kushner
2
:set noesckeysmungkin bukan yang Anda inginkan - atur lalu tekan tombol panah dalam mode sisipkan, bahkan jika Anda tidak berencana menggunakannya, Anda tidak ingin mereka melakukannya! noesckeys juga tidak mempercepat di luar mode insert. ttimeoutlenjelas merupakan cara untuk pergi
JonnyRaa