Il comando è
nnoremap <leader>; :execute "normal! mqA;\<esc>`q"
Se poi premi <leader>;
, sarai E114: Missing quote: "normal! mqA;\
seguito da E15: Invalid expression: "normal! mqA;\
. Perchè è questo? Il comando funziona correttamente se immesso direttamente nella riga di comando.
Il comando aggiunge ;
a alla fine della riga corrente, senza cambiare la posizione dei cursori.
Mi rendo conto che posso semplicemente fare ciò nnoremap <leader>; mqA;<esc>`q
che funziona, la domanda è perché quanto sopra non funziona e cosa si può fare per farlo funzionare nella forma di esecuzione normale.
La mia ipotesi sarebbe che fosse necessario un certo livello di fuga nidificata, ma non sono riuscito a trovarne uno che funzioni.
:h <>
. La parte rilevante è: la <> notazione usa <lt> per sfuggire al significato speciale dei nomi delle chiavi. Anche l'uso di una barra rovesciata funziona, ma solo quando "cpoptions" non include il flag "B". Quindi, seB
flag non è presentecpotions
, è possibile utilizzare\<Esc>
per rappresentare la<Esc>
chiave.