Comandos do VI
Autor: Kleber Krewer | Publicado: 2012-01-10T08:55:00-02:00

A seguir alguns dos comandos que mais usamos no editor de texto VI no linux

:w =&gt; Salva o arquivo que está sendo editado no momento.
:q =&gt; Sai.
:wq =&gt; Salva e sai.
:x =&gt; Idem.
ZZ =&gt; Idem.
:w! =&gt; Salva forçado.
:q! =&gt; Sai forçado.
:wq! =&gt; Salva e sai forçado.

Então, você editou uma boa quantidade de textos e quer salvar:

:w

Agora, quer voltar a editar o texto:

i

Lembre que utilizando o "i" para inserção, a mesma se inicia inserindo texto antes do cursor. Veja agora outros subcomandos de inserção de texto:

A =&gt; Insere o texto no fim da linha onde se encontra o cursor
o =&gt; Adiciona uma linha vazia abaixo da linha corrente
O =&gt; Adiciona uma linha vazia acima da linha corrente
Ctrl + h =&gt; Apaga último caracter à esquerda

Voltando ao modo de comando:

Veja agora subcomandos para movimentação pelo texto:

Ctrl + f =&gt; Passa para a tela seguinte.
Ctrl + b =&gt; Passa para a tela anterior.
H =&gt; Move o cursor para a primeira linha da tela.
M =&gt; Move o cursor para o meio da tela.
L =&gt; Move o cursor para a última linha da tela.
h =&gt; Move o cursor para caracter a esquerda.
j =&gt; Move o cursor para linha abaixo.
k =&gt; Move o cursor para linha acima.
l =&gt; Move o cursor para caracter a direita.
w =&gt; Move o cursor para o início da próxima palavra (não ignorando a pontuação).
W =&gt; Move o cursor para o início da próxima palavra (ignorando a pontuação).
b =&gt; Move o cursor para o início da palavra anterior (não ignorando a pontuação).
B =&gt; Move o cursor para o início da palavra anterior (ignorando a pontuação).
0 (zero) =&gt; Move o cursor para o início da linha corrente.
^ =&gt; Move o cursor para o primeiro caracter não branco da linha.
$ =&gt; Move o cursor para o fim da linha corrente.
nG =&gt; Move o cursor para a linha de número "n"

(susbstitua n pelo número da linha)..
G =&gt; Move o cursor para a última linha do arquivo.

Copiando e colando textos no vim (utilizando o mouse)

Selecione o texto necessário com o botão esquerdo do mouse. Quando você for colar, saiba que o texto será colado a partir de onde se encontra o cursor (esse que aparece, às vezes piscando e às vezes não, quando você está digitando). Para colar, depois de ter selecionado o texto, você pode utilizar uma dessas opções:
1) Pressionando o botão direito do mouse;
2) Pressionando o botão direito + botão esquerdo juntos;
3) Pressionando o botão do meio do mouse (mouse de 3 botões);

Observação: Lembre-se que o vim deve estar no modo de inserção.

Usando o modo visual do vim

Entre no modo visual: v
Agora, utilize as teclas direcionais (setas) do teclado, para selecionar o texto desejado.
Pressione e cole, utilizando a tecla "p" (paste).

Veja agora como apagar um determinado texto:

Utilizando normalmente as teclas Backspace/Delete, ou entrando em modo visual (v) e pressionando a tecla Delete.

Você pode remover até o final de uma palavra, utilizando: dw
Pode também remover até o final de uma frase: d$

Desfazendo uma ação

É claro que você pode desfazer uma ação que você considera errado, ou que errou ao digitar o texto. É só utilizar: u
Se você precisar voltar o texto na tela, utilize as teclas Ctrl + r.

Subcomandos para localização de texto

/palavra =&gt; Procura pela palavra ou caracter acima ou abaixo do texto.
?palavra =&gt; Move para a ocorrência anterior da palavra (para repetir a busca use "n").
n =&gt; Repete o último comando utilizando / ou ?.
N =&gt; Repete o último comando / ou ? ao contrário (baixo para cima).
Ctrl+g =&gt; Mostra o nome do arquivo, o número da linha corrente e o total de linhas.

Mais opções para remoção de caracteres

x =&gt; Apaga o caracter onde o cursor estiver.
dd =&gt; Apaga a linha inteira onde o cursor estive
D =&gt; Apaga a linha a partir da posição do cursor até o fim.
J =&gt; Une a linha corrente à próxima.
:5dd =&gt; Removeas próximas 7 linhas a partir da posição do atual do cursor (qualquer número).

Mais para copiar e colar

:yy =&gt; Copia a linha onde o cursor se encontra.
:5yy =&gt; Copia as próximas 5 linhas a partir da posição atual do cursor.
:p =&gt; Cola o que foi copiado na linha abaixo do cursor atual.

Opções para substituição de textos

rCARACTER =&gt; Substitui o caracter onde o cursor se encontra pelo caracter especificado em CARACTER.
RTEXTO =&gt; Substitui o texto corrente pelo texto digitado (sobrepõe).
cw =&gt; Remove a palavra corrente para substituição.
cc =&gt; Remove a linha corrente para substituição.
C =&gt; Substitui o restante da linha corrente, esperando o texto logo após o comando.
J =&gt; Une a linha corrente à próxima.
:s/velho/novo =&gt; Substitui a primeira ocorrência de "velho" por "novo" na linha corrente.
:% s/velho/novo =&gt; Substitui em todo o arquivo (%) a primeira ocorrência de "velho" por "novo" em cada linha.
:% s/velho/novo/g =&gt; Substitui em todo o arquivo (%), todas (g) as ocorrências de "velho" por "novo".
:% s/velho/novo/gc =&gt; Igual ao anterior, mas pedindo confirmação para cada substituição.
:% s/^String[0-9]//gc =&gt; Expressões regulares também funcionam, como no sed.
:% s/./\u&amp;/gc =&gt; Converte para maiúsculas (\u) o primeiro caracter (.) de cada linha.

Abreviações

:ab =&gt; Mostra todas as abbr.
:abc[lear] =&gt; Remove todos.
:iab =&gt; Apenas para modo de inserção.
:iabc[lear] =&gt; Tira todos de inserção.
:cab =&gt; Apenas p/modo de comando ( : ).
:cabc[lear] =&gt; Tira todos os modos de comando.
:una vc =&gt; Tira ab para vc.

Observação: Pontuação, espaço ou o ENTER, disparam a expansão de uma abreviação. Porém, Ctrl+] também pode ser usado, para expandir sem adicionar caracteres.