Principais Comandos do Editor Vim

Principais Comandos do Editor Vim

O Vi é um editor de textos do Unix. Ele vem por padrão em todas as distribuições Linux, portanto é bom conhecer alguns de seus comandos básicos. A vantagem desse editor sobre outros, como GEdit ou KEdit, é que o Vi roda em terminal, sem interface gráfica, o que permite utilizá-lo num ambiente de linha de comando, como numa conexão por SSH.

1. Modos de trabalho do Vim
2. Salvando arquivos e saindo do editor
3. Movimentando o cursor
4. Navegação no texto
5. Movimentando textos
6. Apagando texto
7. Copiando e colando textos
8. Desfazendo ações
9. Localizando textos
10. Localizando e substituindo textos
11. Executando comandos no Shell sem sair do Vim
12. Inserindo no texto a saída de um comando Shell
13. Facilidades para programadores e desenvolvedores
14. Configuração do ambiente (comando set)
15. Links e indicações de materiais de estudo

1. Modos de trabalho do Vim

O Vim possui dois modos de trabalho: modo de inserção e modo de comando. Ao ser iniciado, o programa estará sempre em modo de comando. Para alternar do modo de comando para o modo de inserção, há duas maneiras:

a -> Ao pressionar a tecla “a”, o modo de inserção é ativado e o cursor de texto é posicionado logo após o caractere corrente;
i -> Ao pressionar a tecla “i”, o modo de inserção é ativado e o cursor de texto é posicionado à esquerda do caractere corrente.

Para alternar do modo de inserção para o modo de comando, basta pressionar a tecla “ESC”.

2. Salvando arquivos e saindo do editor

Entrar no Vim é fácil. Sair, à primeira vista, é um dilema, podendo causar claustrofobia digital. :P
Os seguintes comandos devem ser executados em modo de comando, claro.

:w -> salva o arquivo corrente. É possível passar um argumento, para definir o nome do arquivo. Por exemplo: :w arq1.txt
ZZ -> salva o documento e sai do Vim. É conhecido como o comando “Zalva e Zai”. :)
:wq -> Salva o arquivo e sai do Vim
:w! -> O arquivo será salvo mesmo se aberto no modo somente leitura (readonly)
:q -> Sai do Vim. Se o arquivo não foi salvo, o programa emitirá um alerta.
:q! -> Força a saída, mesmo que o arquivo tenha sido modificado e não tenha sido salvo anteriormente

Os comandos “:wq” e “ZZ” fazem praticamente a mesma coisa. Porém, “ZZ” é mais rápido de se digitar e mais fácil de lembrar (Zalva e Zai!). ;)

3. Movimentando o cursor

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua matrícula, clique aqui
 

4. Navegação no texto

[n]$ -> Move o cursor para o fim da linha. Se especificado um número antes do “$” (cifrão), move para o final da linha com o número especificado (a linha corrente é 1; a conseguinte é 2 e assim sucessivamente)
^ -> Move o cursor para o início da linha corrente. Se o teclado for ABNT ou similares, com teclas para acentuação, você terá de digitar a tecla duas vezes, para o Vi compreender o comando literalmente, não como um acento para outra letra.
0 (número zero) -> Equivale ao comando “^”.
[n]A -> Move o cursor para o fim da linha e entra em modo de inserção. É possível inserir um numero antes do “A”, como no comando “$”.
[n]G -> Se não for especificado o número “n”, o cursor será movido para o fim do arquivo. Caso contrário, desloca o cursor para a linha “n”.

5. Movimentando textos

OBS: ^LETRA corresponde à combinação das teclas CTRL e a letra especificada.

^e -> Move o texto para cima, independentemente da posição do cursor.
^y -> Move o texto para baixo, independentemente da posição do cursor.

6. Apagando texto

[n]x -> Apaga o caractere sob o cursor. É possível especificar o número de caracteres a serem removidos.
[n]X -> Apaga o caractere à esquerda do cursor. É possível especificar o número de caracteres a serem removidos.
[n]dd -> Apaga a linha corrente. É possível especificar o número de linhas a serem removidas após a linha corrente.
D -> Apaga todos os caracteres da posição corrente até o final da linha.
d$ -> Equivale ao comando “D”.
d^-> Apaga todos os caracteres da posição corrente até o início da linha.
dw -> apaga os caracteres da posição corrente até o final da palavra.

7. Copiando e colando textos

Para copiar uma linha de textos, usamos o comando “yy”. É possível usar “[n]yy” para definir o número de linhas a serem copiadas.

Para colar o texto copiado, usa-se “[n]p” para colar à direita do cursor ou “[n]P” para colar à esquerda do cursor. O número “n” (opcional) determina o número de vezes que o texto será colado.

8. Desfazendo ações

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua matrícula, clique aqui
 

9. Localizando textos

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua matrícula, clique aqui
 

10. Localizando e substituindo textos

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua matrícula, clique aqui
 

11. Executando comandos no Shell sem sair do Vim

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua matrícula, clique aqui
 

12. Inserindo no texto a saída de um comando Shell

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua matrícula, clique aqui
 

13. Facilidades para programadores e desenvolvedores

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua matrícula, clique aqui
 

15. Links e indicações de materiais de estudo

Para aprender mais sobre Comandos Linux e Shell Script, veja meu curso Shell Script Para Programadores. Um dos 3 bônus é o artigo completo sobre o Editor Vim.

The following two tabs change content below.
Graduado em Ciência da Computação, pela Universidade Federal do Paraná (UFPR), é desenvolvedor de software desde 2008, com foco em Desenvolvimento Web com PHP.
  • Ótimo artigo!

    Sempre preferi usar o JOE, que não é nativo, o fato é que não conhecia o VI de verdade :), agora mudei os meus conceitos ..

  • Douglas

    Olá, Parabéns pelo post, muito bem detalhado, adorei, e me ajudou bastante.

    Obrigado.