Der Befehl lautet
nnoremap <leader>; :execute "normal! mqA;\<esc>`q"
Wenn Sie dann drücken <leader>;
, werden Sie E114: Missing quote: "normal! mqA;\
gefolgt von E15: Invalid expression: "normal! mqA;\
. Warum ist das? Der Befehl funktioniert einwandfrei, wenn er direkt in die Befehlszeile eingegeben wird.
Der Befehl fügt ;
am Ende der aktuellen Zeile ein hinzu, ohne die Cursorposition zu ändern.
Mir ist klar, dass ich nur das tun kann, nnoremap <leader>; mqA;<esc>`q
was funktioniert. Die Frage ist, warum das oben Genannte nicht funktioniert und was getan werden kann, damit es in der normalen Ausführungsform funktioniert.
Meine Vermutung wäre, dass ein gewisses Maß an verschachtelter Flucht erforderlich ist, aber ich konnte keine finden, die funktioniert.
:h <>
. Der relevante Teil ist: Die <> Notation verwendet <lt>, um der besonderen Bedeutung von Schlüsselnamen zu entgehen. Die Verwendung eines Backslashs funktioniert ebenfalls, jedoch nur, wenn 'cpoptions' das Flag 'B' nicht enthält. Wenn dasB
Flag nicht aktiviert istcpotions
, können Sie\<Esc>
den<Esc>
Schlüssel darstellen.