Vim - tunda saat keluar dari mode visual

8

Jika saya menekan ESC untuk keluar dari Mode Visual setelah saya memilih beberapa teks, ada penundaan nyata sebelum teks tidak dipilih dan saya kembali ke Mode Normal (bahkan jika saya hanya memilih 1-2 karakter). Bisakah penundaan ini dihindari?


sumber

Jawaban:

2

Ini dapat disebabkan oleh dipetakan ke beberapa fungsi tambahan. Sebagai contoh, saya menggunakan plugin tabbar dan memetakan 0-9 untuk beralih ke buffer nomor. Setiap kali tombol dipetakan ke fungsionalitas tambahan seperti ini, vim menunggu beberapa detik setelah ditekan untuk melihat apakah Anda akan menekan tombol tambahan apa pun.

Untuk melihat apakah ada pemetaan tambahan, jalankan :mapdan cari <Esc>di kolom pertama. Ketika dijalankan tanpa parameter apa pun, :mapakan mencantumkan semua pemetaan kustom. Jika Anda ingin mendaftar hanya pemetaan saat dalam mode visual, jalankan :vmap.

Jika memang ada pemetaan tambahan, saya tidak tahu cara menghapus jeda, selain menghapus pemetaan. Jeda ini diperlukan agar vim dapat mengetahui tindakan apa yang ingin Anda ambil.

cledoux
sumber
1
Di terminal mirip VT100 (termasuk Terminal Xterm / Rxvt / PuTTY / GNOME), Escjuga merupakan awalan untuk semua kunci khusus, termasuk bahkan tombol panah.
user1686
@grawity: Benar, tetapi Vim menggunakan nilai batas waktu yang berbeda untuk urutan pelarian daripada yang dilakukan untuk pemetaan, sehingga penanganan urutan pelarian tersebut biasanya tidak menyebabkan masalah yang dilaporkan di sini. Lihat :help 'timeout'.
garyjohn
Terima kasih, itu dia. Sekarang saya hanya perlu menemukan pemetaan mana yang mengganggu penggunaan saya.
0

Saya tidak memiliki pemetaan yang terikat dengan <ESC> secara global atau untuk mode Visual (memanggil: verbose vmap <ESC> tidak memberikan hasil) tetapi masih ada penundaan yang signifikan saat keluar dari mode Visual. Bahkan pada pemasangan baru tanpa vimrc, penundaan masih ada. Menggunakan <Cc> keluar dari mode visual tanpa penundaan.

Karena saya tidak suka menekan <Cc> untuk keluar dari mode apa pun, saya saat ini memetakan <ESC> ke <Cc> dalam mode visual. Ini keluar dari mode visual menggunakan <ESC> tanpa penundaan.

:vmap <ESC> <C-c>

Atau letakkan baris berikut di vimrc Anda

vnoremap <ESC> <C-c>

Ini tidak akan berfungsi jika Anda memiliki pemetaan mode global atau visual terikat ke <ESC>.

lohfu
sumber
-2

Apa yang dapat Anda lakukan masih, adalah menggunakan CTRL+ Cuntuk keluar dari mode Visual, Itu harus menghindari penundaan.

Florian
sumber