O comando é
nnoremap <leader>; :execute "normal! mqA;\<esc>`q"
Se você pressionar <leader>;
, você será E114: Missing quote: "normal! mqA;\
seguido por E15: Invalid expression: "normal! mqA;\
. Por que é isso? O comando funciona bem se for inserido diretamente na linha de comando.
O comando adiciona a ;
no final da linha atual, sem alterar a posição dos cursores.
Percebo que posso apenas fazer o nnoremap <leader>; mqA;<esc>`q
que funciona, a questão é por que o que foi dito acima não funciona e o que pode ser feito para fazê-lo funcionar da forma normal de execução.
Meu palpite seria que é necessário algum nível de escape aninhado, mas não consegui encontrar um que funcione.
:h <>
. A parte relevante é: A notação <> usa <lt> para escapar do significado especial dos nomes das chaves. Usar uma barra invertida também funciona, mas apenas quando 'cpoptions' não inclui o sinalizador 'B'. Portanto, se oB
sinalizador não estiver emcpotions
, você pode usar\<Esc>
para representar a<Esc>
chave.