Wie die meisten vim
Benutzer, ich habe eine Bequemlichkeit <Esc>
AbkürzungVim: Vermeiden von rekursiven <Esc> Abkürzung
:nnoremap ;j <Esc>
aber jetzt habe ich das folgende Szenario: Ich habe eine Funktion, die eine if statement
in mein Dokument einfügt:
autocmd FileType c nnoremap <localleader>si :call RemapTabC()<CR>iif()<CR>{<CR>}<Esc>--f)i
RemapTabC()
sieht wie folgt aus:
function RemapTabC()
inoremap <buffer> <Tab> <Esc>:call UnmapTab()<CR>jo
inoremap <buffer> <Esc> <Esc>:call UnmapTab()
endfunction
Und ich denke der Fehler sollte offensichtlich sein. Ich verwende <localleader>si
, und die Vorlage wird angezeigt. Mein Cursor befindet sich in der Bedingungsklausel. Jetzt gebe ich ein, was ich will, und jetzt habe ich zwei Möglichkeiten:
- Ich klicke Tab. Funktioniert gut, setzt meinen Cursor in den Körper der if-Anweisung.
- Ich klicke Esc. Funktioniert auch gut, ABER jetzt, wenn ich meine Remap
;j
verwenden, weil es direkt auf<Esc>
, anstatt auf meine neu zugeordnet<Esc>
zuordnen wird.
Ich könnte nur meine nnoremap ;j <Esc>
rekursiv machen, aber ich habe wirklich Angst davor, es zu verwüsten. Habe ich noch andere Möglichkeiten?
': 1s/most/some' – romainl