5.2 Vim (VI iMproved)

O Vim (publicado em 1991) é uma versão melhorada do antigo VI. Sua interface simplista esconde recursos poderosos e uma infinidade de possibilidades. Além de ser muito utilizado, principalmente por desenvolvedores, este editor caiu no gosto de muitos administradores de sistema. Para abrir o Vim, execute o comando:

$ vi

Veja a tela de boas-vindas:

Tela de boas-vindas do Vim

Figura 17 - Tela de boas-vindas do Vim

O Vim pode operar basicamente de quatro formas: modo normal, modo de inserção, modo visual e modo de comando. Veja as definições:

  • Modo normal: falaremos deste mais adiante; por enquanto se apegue somente à informação de que para entrar neste modo basta pressionar a tecla ESC. Quando o Vim é iniciado, ele carrega por padrão neste modo;
  • Modo de inserção: esse modo é voltado especificamente para a edição de texto; para acessá-lo, basta entrar no modo normal e pressionar uma das teclas a seguir:
    • a (append): inicia o modo de inserção um caractere após o atual;
    • A: inicia o modo de inserção no final da linha;
    • i (insert): inicia o modo de inserção antes do caractere atual;
    • I (i maiúsculo): inicia o modo de inserção no início da linha.
  • Modo visual: permite selecionar texto verticalmente, exibindo um destaque visual; para acessá-lo, basta entrar no modo normal e digitar:
    • v: seleção de caracteres;
    • V: seleção de linhas;
    • ^V: seleção de blocos.
  • Modo de comando: falaremos deste mais adiante; por enquanto se apegue somente à informação de que, para acessá-lo, basta entrar no modo normal e pressionar : (dois-pontos).

Siga os passos abaixo para uma demonstração prática:

  • Execute o comando vi no terminal;
  • A tela de boas-vindas será apresentada; pressione a tecla i para entrar no modo de inserção;
  • Digite a frase "Bem-vindo ao curso de Linux...";
  • Pressione ESC para voltar ao modo de comando;
  • Digite ":wq curso.txt" e pressione ENTER.

A instrução :wq (modo de comando) informa ao editor que desejamos escrever/salvar o texto e posteriormente sair do editor. O nome do arquivo só é obrigatório caso este ainda não exista, ou seja, quando se trata de um arquivo novo. Já para editar um arquivo existente, utilize a instrução:

$ vi nome_do_arquivo

Veja uma demonstração prática utilizando os modos normal, inserção e comando:

  1. No terminal executamos: vi curso.txt;
  2. Com o apoio das teclas direcionais, desloque o cursor até a letra L e digite dw;
  3. Pressione a tecla i;
  4. Digite GNU/Linux e pressione ESC;
  5. Digite :wq e pressione ENTER.

Vamos analisar os passos acima:

  1. A instrução "vi curso.txt" indica que iremos abrir o arquivo curso.txt;
  2. O Vim inicia por padrão no modo de comando; utilizamos as teclas (setas) direcionais para deslocar o cursor até a letra L e digitamos dw para apagar a palavra Linux;
  3. Após apagar a palavra, entramos no modo de inserção ao pressionar a tecla i;
  4. Digitamos o que queríamos e voltamos ao modo de comando por meio da tecla ESC;
  5. Digitamos :wq (escreve/salva e sai) e pressionamos ENTER para executar o comando.

5.2.1 Comandos comuns

A lista abaixo representa as operações mais comuns, ou cotidianamente mais utilizadas, dentro do Vim.

5.2.1.1 Salvar/Sair (modo de comando)

  • :w = salva o arquivo. É possível passar um parâmetro adicional para nome;
  • :x = salva se o arquivo tiver sido modificado;
  • ZZ = salva e sai do editor;
  • :wq = salva e sai do editor;
  • :w! = salva o arquivo mesmo se tiver sido aberto no modo leitura (readonly);
  • :q = sai do editor. Se o arquivo não tiver sido salvo, será apresentado um aviso;
  • :q! = força a saída do editor sem apresentar aviso;
  • :10,20 w! ~ \texto.txt = salva as linhas de 10 a 20 em ~\texto.txt.

5.2.1.2 Movimentação (modo normal)

  • k = move o cursor uma linha para cima;
  • j = move o cursor uma linha para baixo;
  • h = move o cursor um caractere para a esquerda;
  • l = move o cursor um caractere para a direita.

A todas as 4 possibilidades acima podemos anteceder um valor numérico caso seja de nosso interesse deslocar o cursor x caracteres ou x linhas de uma única vez. Por exemplo: 5j (desloca o cursor 5 linhas para baixo).

5.2.1.3 Saltos (modo normal)

  • gg = leva o cursor para o início do arquivo;
  • G = leva o cursor para o fim do arquivo;
  • 0 (zero) = leva o cursor para o início da linha;
  • $ = leva o cursor para o fim da linha;
  • * = leva o cursor para a próxima ocorrência da palavra em que ele está no momento;
  • % = leva o cursor para o parêntese correspondente;
  • } = leva o cursor para o fim do parágrafo.

5.2.1.4 Editar

  • dl = apaga uma letra;
  • dw = apaga uma palavra a partir da posição do cursor;
  • dd = apaga a linha atual;
  • ou d0 = apaga da posição atual até o início da linha;
  • d$ ou D= apaga da posição atual até o fim da linha;
  • dgg = apaga da posição atual até o início do arquivo;
  • dG = apaga da posição atual até o fim do arquivo.

A lista acima nos permite apagar parte do texto, porém, o conteúdo apagado na verdade é copiado para a memória (buffer = área de transferência), o que nos permite deslocar o cursor para outra posição e utilizar a tecla p para colar o texto na posição desejada, caso seja essa a intenção. Outra informação igualmente importante é que um valor numérico pode anteceder os comandos dl, dw e dd, respectivamente para apagar um número x de letras, palavras ou linhas.

Já se sua intenção for copiar o conteúdo sem deletá-lo/apagá-lo, basta utilizar os comandos:

  • yl (L minúsculo) = copia uma letra;
  • yw = copia uma palavra;
  • yy = copia uma linha;
  • ou y0 = copia da posição atual até o início da linha;
  • y$ = copia da posição atual até o fim da linha;
  • ygg = copia da posição atual até o início do arquivo;
  • yG = copia da posição atual até o fim do arquivo.

Assim como ocorre para dl, dw e dd, também podemos anteceder os comandos yl, we e yy com um valor numérico para representar respectivamente o número de letras, palavras e linhas a serem copiadas. Por exemplo: 5yy (irá copiar 5 linhas).

5.2.1.5 Desfazer (modo normal)

  • u = desfaz a última alteração (pode ser repetido);
  • U = desfaz todas as alterações feitas na última linha editada.

5.2.1.6 Buscar/Substituir (modo normal)

  • /palavra = busca a palavra informada;
  • // = repete a busca realizada anteriormente;
  • * = após uma busca, pode ser utilizado para levar o cursor até a próxima ocorrência;
  • :s/buscar/substitui = busca uma ocorrência e substitui pelo valor informado;
  • :1,10 s/buscar/substitui = busca e substitui da linha 1 até a 10;
  • :1,$ s/buscar/substitui = busca e substitui da linha 1 até o fim do arquivo;
  • :% s/buscar/substitui = busca e substitui no arquivo inteiro (equivale ao comando anterior);

:link: Wiki de comandos: https://pt.wikibooks.org/wiki/Vim Documentação oficial (inglês): http://vimdoc.sourceforge.net/htmldoc/help.html

O Vim é muito completo e permite até mesmo realizar operações complexas baseadas em expressão regular. As possibilidades são muitas; para mais informações consulte os links apresentados acima.

results matching ""

    No results matching ""