Saya mengalami masalah aneh dengan pemetaan mode normal Esc.
Jika Anda membuat file escmapvimrcdengan konten:
set nocompatible
set showcmd " Doesn't affect the problem: just makes it easier to see
nnoremap <Esc> :noh<CR><esc>
Dan kemudian mulai vim menggunakan vimrc ini:
vim --noplugin -u escmapvimrc
Kemudian vim akan mulai dalam mode menunggu operator dengan cperintah menunggu input lebih lanjut, menampilkan file kosong, dan dengan menampilkan baris perintah :noh.
Jika Anda menghapus nnoremapgaris, maka masalahnya hilang.
Jika Anda men-debug dan melangkah melalui semua yang Anda dapatkan output berikut:
Entering Debug mode. Type "cont" to continue.
/[...]/escmapvimrc
line 1: set nocompatible
>s
/[...]/escmapvimrc
line 2: set showcmd " Doesn't affect the problem: just makes it easier to see
>s
/[...]/escmapvimrc
line 3: nnoremap <Esc> :noh<CR><esc>
>s
/[...]/escmapvimrc
line 4: End of sourced file
>s
Press ENTER or type command to continue
Setelah Anda menekan enter, layar startup Vim ditampilkan, dan di bawahnya:
Entering Debug mode. Type "cont" to continue.
cmd: noh
>s
Layar startup Vim kemudian menghilang, dan Anda dalam mode pending operator, seperti dijelaskan di atas.
Apa yang sedang terjadi?
EDIT: Perilaku seperti dijelaskan dalam Vim 7.3. Dalam Vim 7.4.52, nmappenyebab Vim untuk memulai dalam mode Ganti ketika memulai Vim tanpa file. (Jika Vim 7.4.52 dimulai dengan file, bagaimanapun, itu juga dimulai dengan c-command yang sedang berlangsung.) Bagaimanapun, masalahnya hilang ketika nmap dihapus.
nnoremap <c-l> :noh<cr><c-l>
/alksdjflaskjuntuk menghapus sorotan pencarian yang juga cukup cepat.
:nohuntuk saya. Melakukan hal yang sama dengan gvim tidak menunjukkan perilaku ini.