Mam dziwny problem z mapowaniem trybu normalnego Esc.
Jeśli utworzysz plik escmapvimrc
z zawartością:
set nocompatible
set showcmd " Doesn't affect the problem: just makes it easier to see
nnoremap <Esc> :noh<CR><esc>
A następnie uruchom vim za pomocą tego vimrc:
vim --noplugin -u escmapvimrc
Następnie vim uruchomi się w trybie oczekiwania operatora z c
poleceniem oczekującym na dalsze wprowadzanie, wyświetlaniem pustego pliku i wyświetlaniem wiersza poleceń :noh
.
Jeśli usuniesz nnoremap
linię, problem zniknie.
Jeśli debugujesz i przejdziesz przez wszystko, otrzymasz następujące dane wyjściowe:
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
Po wciśnięciu enter wyświetli się ekran startowy Vima, a pod nim:
Entering Debug mode. Type "cont" to continue.
cmd: noh
>s
Ekran startowy Vima znika, a ty jesteś w trybie oczekiwania operatora, jak opisano powyżej.
Co się dzieje?
EDYCJA: Zachowanie jest takie, jak opisano w Vim 7.3. W Vimie 7.4.52 nmap
powoduje , że Vim uruchamia się w trybie Zastąpienia podczas uruchamiania Vima bez pliku. (Jeśli Vim 7.4.52 jest uruchamiany z plikiem, uruchamia się również z trwającym poleceniem c). Tak czy inaczej, problem zniknie po usunięciu nmap.
nnoremap <c-l> :noh<cr><c-l>
/alksdjflaskj
do wyczyszczenia podświetlenia wyszukiwania, które jest również dość szybkie.
:noh
mi się. Robienie tego samego z gvimem nie wykazało tego zachowania.