Saya mengalami masalah aneh dengan pemetaan mode normal Esc.
Jika Anda membuat file escmapvimrc
dengan 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 c
perintah menunggu input lebih lanjut, menampilkan file kosong, dan dengan menampilkan baris perintah :noh
.
Jika Anda menghapus nnoremap
garis, 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, nmap
penyebab 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>
/alksdjflaskj
untuk menghapus sorotan pencarian yang juga cukup cepat.
:noh
untuk saya. Melakukan hal yang sama dengan gvim tidak menunjukkan perilaku ini.