Nota: Presumo que você esteja usando o a
registro para obter toda a resposta, mas você pode usar qualquer registro
Nota 2: <1b>
é Esc; você pode inserir isso com Ctrl+ve então Esc. Também pode aparecer como ^[
(dependendo da display
configuração).
Não é um mapeamento; então faz sentido que :map
não funcione. Ele é gravado em um registro e você pode vê-lo e editá-lo como qualquer outro registro.
Tudo o que qfaz é "limpar este registro e acrescentar qualquer pressionamento de tecla" , e tudo o que @faz é "avaliar um registro como comandos" .
Não há nada "diferente" em uma macro; você pode chamar qualquer registro como uma macro.
Para visualizar basta usar:
:echo @a
Assim como qualquer registro.
Você também pode usar :registers
para visualizar todos os registros.
Para editar, você pode fazer várias coisas:
A maneira mais simples de você apenas atribuir @a
, da seguinte maneira:
:let @a='iasd<1b>'
Isso iniciará o modo de inserção ( i
), inserção asd
e Escape de volta ao modo normal.
Isso não é muito útil para edição extensa; você pode usar funções (ou seja substitute()
,) ou talvez acrescentar algo ( :let @a=@a . 'more'
), mas alterar algo no meio não é tão fácil.
Descobri que a melhor maneira disso é iniciar um novo buffer com :split
ou :tabnew
editar o registro, inserindo-o ali, editando-o e copiando-o novamente.
Você pode usar o "apque irá inserir o texto no buffer (onde a
está o seu registro):
iThis is A<1b>
Agora posso mudar a linha para talvez:
iThis is an edited macro<1b>
Então eu faço ^v$"aypara puxar (copiar) esta linha para o a
registro:
- ^ para o início da linha
- v para modo visual
- $ para fim de linha
- "ay puxe a seleção para registrar
a
Se desejar, você pode fazer isso sem usar o modo visual com ^"ay$.
Agora você pode usar @a, como se isso fosse o que você gravou originalmente.
Você também pode usar yy, e então @", o que é um pouco mais rápido. Isso também copiará a nova linha à direita e poderá causar efeitos colaterais ... Outra maneira de tornar isso mais rápido é usar uma macro :-)
Enter
no final de sua gravação. Em muitos casos, isso pode ser benigno, mas em cenários em que você criou cuidadosamente a posição do cursor no final da gravação, isso pode afetar a repetibilidade.