Vim/Repetição de comandos: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Edudobay (discussão | contribs)
Sem resumo de edição
Edudobay (discussão | contribs)
Linha 21:
** <code><Esc></code>: finaliza a inserção.
 
== Gravando uma seqüência de comandos ==
===Usando registros===
Imagine que você tem o seguinte trecho de código
 
Imagine que você tem o seguinte trecho de código :
stdio.h ~
 
fcntl.h ~
unistdstdio.h ~
stdlibfcntl.h ~
unistd.h
stdlib.h
 
e quer que ele fique assim:
 
#include "stdio.h" ~
#include "fcntl.h" ~
#include "unistd.h" ~
#include "stdlib.h" ~
 
Não podemos simplesmente executar repetidas vezes um comando do Vim, pois precisamos incluir texto tanto no começo quanto no fim da linha ― é necessário mais de um comando para isso.
É aí que entram os registros, que podem ser 26, um para cada letra do alfabeto<br>
 
para iniciar um registro faça:
É aí que entram as macros. Podemos gravar até 26 macros, já que elas são guardadas nos registros do Vim, que são identificados pelas letras do alfabeto. Para começar a gravar uma macro no registro ''a'', digitamos
 
qa
 
no modo Normal. Tudo o que for digitado a partir daí será gravado no registro ''a'' até que terminemos com o comando <code>q</code> novamente (no modo Normal). Assim, podemos solucionar nosso problema:
onde ''q'' inicia o registro e ''a'' é o próprio registro<br>
 
partir do comando qa tudo que for digitado e todos os comandos <br>
{| {{prettytable}}
serão gravados no registro. Vamos à solução do problema proposto acima<br>
| <code>qa</code>
<pre>
qa | Inicia a gravação doda macro no registro -''a'' (ou qualquer outro à Macroescolha).
|-
^ Move para o começo da linha.
| <code>^</code>
i#include "<Esc> Insere a string #include " no começo
| Move para o começo da linha.
|-
$ Move para o final da linha.
| <code>i#include "<Esc></code>
a"<Esc> Adiciona (append) aspas (")
i#include| "<Esc> Insere a string #include " no começo da linha.
ao final da liha.
|-
j Vai para a próxima linha.
| <code>$</code>
q Para a gravação da macro.
^ | Move para o começofinal da linha.
</pre>
|-
| <code>a"<Esc></code>
| Adiciona aspa dupla (") ao final da linha.
|-
| <code>j</code>
j | Vai para a próxima linha.
|-
| <code>q</code>
q | Para a gravação da macro.
|}
 
Agora você só precisa posicionar o cursor na primeira letra de uma linha como esta<br>
stdio.h ~
 
e aplicarexecutar a macro do registro ''a'' quantas vezes for necessário, usando o registro,comando para<code>@</code>. Para aplicar 3xquatro vezes, façadigite:
 
4@a
3@a
 
oEste comando acimaexecuta aplicaquatro 3xvezes o conteúdo do registro ''a''.
 
===Scripts vim===