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>`qche 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, seBflag non è presentecpotions, è possibile utilizzare\<Esc>per rappresentare la<Esc>chiave.