Salvando macros do vim

166

Alguém sabe como salvar / reutilizar corretamente as macros gravadas dentro de um editor vim?

jnadro52
fonte

Respostas:

216

Use qseguido de uma letra para gravar uma macro. Isso apenas entra em um dos registros de copiar / colar para que você possa colá-lo normalmente com os comandos "xpou "xPno modo normal.

Para salvá-lo, abra .vimrc e cole o conteúdo, então o registro estará disponível na próxima vez que você iniciar o vim.
O formato é algo como:

let @q = 'macro contents'

Tenha cuidado com as aspas, no entanto. Eles teriam que ser escapados adequadamente.

Então, para salvar uma macro, você pode fazer:

  • Do modo normal: qq
  • digite quaisquer comandos
  • Do modo normal: q
  • abrir .vimrc
  • "qppara inserir a macro na sua let @q = '...'linha
Dan Olson
fonte
3
Além disso, se você precisar inserir caracteres especiais (como escape, no meu caso), use CTRL-V <ESC>no modo de inserção para inserir o caractere correto. Um literal <ESC>não trabalho
adam_0
5
"Note, no entanto, que o método acima usando: let não funcionará como esperado para macros que você finalize com um caractere <CR> ou <NL> (retorno de carro ou nova linha).". vim.wikia.com/wiki/Macros#Saving_a_macro
Paolo
2
As aspas (em torno do conteúdo da macro) são necessárias?
user2472071
15
Ctrl+r Ctrl+r registerNameentradas registram conteúdo sem interpretá-los - melhor que "qp. 1 para o método in-vim, no entanto.
LAFK diz Restabelecer Monica
@ adam_0 Você poderia elaborar isso? Talvez, inclua um exemplo? Não consigo descobrir como incorporar caracteres especiais, ou seja, esc. Eu tentei todas as combinações de introduzir uma fuga sem sucesso. O "código-chave" acaba arruinando a macro e toda a sequência é impressa.
GH05T
21

Para uma solução mais robusta, você pode conferir o Marvim .

Permite salvar uma macro em um espaço para nome específico (ou usar o tipo de arquivo como espaço para nome padrão) e, posteriormente, procurar as macros salvas e carregá-las em um registro pronto para uso.

Se você reutilizar muitas macros, isso é bastante útil.

aleatória
fonte
6
Apenas queira enfatizar isso e dizer como é fácil configurar o marvim- copie um único arquivo para o diretório / plugin, depois use F3 para salvar uma macro e F2 para executar.
Raine Revere
18

Escreva suas macros dentro de seu ~ / .vimrc, para definir uma macro iniciada por CTRL + O por exemplo, adicione a seguinte linha ao seu ~ / .vimrc:

map <C-O> MACROTEXT

ao gravar uma macro digitando, qavocê pode recuperar o texto da macro digitando"ap

Raoul Supercopter
fonte
Usando "ap ou equivalente não funcionou, mas você pode chegar à mesma informação por: reg
DShook
"ap se referiria a uma macro gravada no aregistro
Tyler Fowle
11

O comando :mkexrc(ou :mkvimrc) pode ser usado para salvar todas as configurações atuais :mape :setem um arquivo. Veja :help mkexrcpara detalhes.

Matthew Slattery
fonte
4

Você pode fazer assim no seu ~/.vimrc

:let @a="iHello World!\<CR>bye\<Esc>"

NOTA: Você deve usar aspas duplas para poder usar teclas especiais como em \<this silly example>.

SergioAraujo
fonte