Eu costumo criar macros on-the-fly quando eu preciso fazer uma tarefa repetitiva entre muitos arquivos. No meu caso, eu tenho NERDtree ( link ) instalado no VIM, que cria um vsplit
janela, e à esquerda, eu tenho uma lista de todos os arquivos no diretório atual. Em um exemplo, eu preciso encontrar a primeira instância da seqüência de caracteres MY_TEST
no arquivo e, em seguida, excluir, se presente, um prefixo rotulado como CUSTOM_PREFIX-
dessa linha, salve o arquivo e, em seguida, mova para o próximo. / p>
Veja como eu tenho essa macro trabalhando em cerca de 2000 arquivos no diretório atual. Eu poderia escrever um script bash para fazer isso, mas é mais rápido no VIM, no meu caso. O +
indica que as teclas estão sendo pressionadas simul
# Start recording a macro sequence to register 'A'
q , a
# Search silently for the string "MY_TEST"; DO NOT report an error
# if the string could not be found.
:silent! /MY_TEST
# Replace, on just the current line, the string "CUSTOM_PREFIX-", with
# nothing (ie: delete it), and suppress any warning messages if the
# string could not be found on the current line.
:s/CUSTOM_PREFIX-//e
# Now issue some UI commands. CTRL-W then and arrow key lets you hope
# between tabs/splits/windows within vim.
CTRL + W , ←
# Scroll down to the next file in the list in NERDtree
↓
# Open the next file
ENTER
# End the macro
q
# Run the macro a thousand times in VIM
1000, @ , a
Espero que isso ajude!