Ich habe ein seltsames Problem mit einer Normalmodus-Zuordnung von Esc.
Wenn Sie die Datei escmapvimrcmit dem Inhalt erstellen :
set nocompatible
set showcmd " Doesn't affect the problem: just makes it easier to see
nnoremap <Esc> :noh<CR><esc>
Und dann starte vim mit diesem vimrc:
vim --noplugin -u escmapvimrc
Dann startet vim im Operator-Pending-Modus, wobei ein cBefehl auf weitere Eingaben wartet, eine leere Datei anzeigt und die Befehlszeile angezeigt wird :noh.
Wenn Sie die nnoremapLeitung entfernen , wird das Problem behoben.
Wenn Sie alles debuggen und durchgehen, erhalten Sie die folgende Ausgabe:
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
Nachdem Sie die Eingabetaste gedrückt haben, wird der Vim-Startbildschirm angezeigt und darunter:
Entering Debug mode. Type "cont" to continue.
cmd: noh
>s
Der Vim-Startbildschirm wird dann ausgeblendet und Sie befinden sich wie oben beschrieben im Modus für ausstehende Bedienereingaben.
Was ist los?
BEARBEITEN: Das Verhalten ist wie in Vim 7.3 beschrieben. In Vim 7.4.52 wird nmapVim im Ersetzungsmodus gestartet, wenn Vim ohne Datei gestartet wird. (Wenn Vim 7.4.52 jedoch mit einer Datei gestartet wird , wird auch ein C-Befehl ausgeführt.) In beiden Fällen verschwindet das Problem, wenn die nmap entfernt wird.
nnoremap <c-l> :noh<cr><c-l>
/alksdjflaskj, um das Suchhighlight zu löschen, was ebenfalls recht schnell ist.
:nohfür mich nicht angezeigt. Dasselbe mit gvim zu tun, zeigte dieses Verhalten nicht.