Qual é a melhor estratégia para blocos de código e macros no vim?

StackOverflow https://stackoverflow.com/questions/54401

  •  09-06-2019
  •  | 
  •  

Pergunta

À medida que desenvolvo mais com o vim, sinto vontade de copiar blocos de código útil, semelhantes aos "modelos" do Eclipse.

Eu estava pensando em criar um arquivo separado para cada pedaço de código e apenas lê-los com

:r code-fornext

mas isso parece meio primitivo.Pesquisando no Google, encontro macros vim mencionadas e algo sobre "mapas", mas nada que pareça simples.

O que estou procurando é, por exemplo.algo como os "Modelos" do Eclipse, então coloco um pedaço de código com o cursor no meio dele.Ou as "Macros" do JEdit, que posso gravar fazendo exclusões complicadas e renomeando em uma linha, depois posso reproduzi-las novamente em outras 10 linhas, para que faça o mesmo com elas.

O vim tem algo parecido com essas duas funcionalidades?

Foi útil?

Solução

Para gravar macros no Vim, no modo de comando, pressione o botão q tecla e outra tecla à qual você deseja atribuir a macro.Para macros de descarte rápido, geralmente apenas clico qq e atribua a macro ao q chave.Quando estiver no modo de gravação, execute as teclas digitadas.Quando terminar, certifique-se de estar de volta ao modo de comando e pressione q novamente para interromper a gravação.Então, para reproduzir a macro manualmente, você pode digitar @q.Para reproduzir a macro executada anteriormente, você pode digitar @@ ou para executá-lo 10 vezes você pode digitar 10@q ou 20@q, etc.

Resumindo:

+----------------------------------+-------------------------------------+
| start recording a macro          | qX (X = key to assign macro to)     |
+----------------------------------+-------------------------------------+
| stop recording a macro           | q                                   |  
+----------------------------------+-------------------------------------+
| playback macro                   | @X (X = key macro was assigned to)  |
+----------------------------------+-------------------------------------+
| replay previously played macro   | @@                                  |
+----------------------------------+-------------------------------------+

Em relação aos pedaços de código, encontrei e comecei a usar um plug-in do Vim chamado snipMate, que imita o recurso de snippets do TextMate.Você pode obter o plug-in aqui:

http://www.vim.org/scripts/script.php?script_id=2540

E um pequeno artigo sobre como usar o snipMate (junto com um breve screencast mostrando-o em uso):

http://www.catonmat.net/blog/vim-plugins-snipmate-vim/

Espero que você ache isto útil!

Outras dicas

No vim.wikia, você encontrará um categoria de dicas dedicado à expansão de trechos e abreviações.Você também verá uma lista de plug-ins que facilitam a definição de trechos/arquivos de modelos complexos.

HTH,

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top