Vejam alguns comandos do editor VI no Linux. Abaixo você pode ver uma vasta lista que vai ajudar bastante o pessoal que esta iniciando o uso do VI no Linux.

Linux

Linux

Inserção de caracteres

i – insere texto antes do caractere atual.
I – insere texto no início da linha atual.
a – insere texto após o caractere atual.
A – insere texto no final da linha atual.
o – insere texto no início da próxima linha (inserindo uma nova linha).
O – insere texto no início da linha anterior (inserindo uma nova linha).
OBS: Para sair do modo de inserção de caracteres, digite <ESC>.

Deletando caracteres:
<DEL> – deleta a letra anterior ao cursor (depende da configuração).
x – deleta a letra do cursor
nx – deleta as próximas n letras
dw – deleta o restante da palavra atual
ndw – deleta as n próximas palavras
u – undelete (restaura o que foi apagado por último ou apaga o que foi inserido por último).
dd – deleta a linha atual
ndd – deleta n linhas a partir da atual

Substituição de caracteres:
s – substituí a letra atual (e entra no modo de inserção).
S – substituí a linha atual (e entra no modo de inserção).
r – substituí a letra atual (não entra no modo de inserção).
R – entra no modo de substituição (sai com <ESC>).
~ – substituí maiúsculo/minúsculo.
. – repete o último comando.

Movimentação de cursor
(em algumas situações as setas funcionam):
j – uma linha para baixo
k – uma linha para cima
h – um caractere para a esquerda
l – um caractere para a direita
b – volta para o início da palavra.
w – adianta para a próxima palavra.
0 – início da linha
$ – fim da linha
nG – vai para a linha n (0G ou G vai para a ultima linha).
% – usado em parênteses para achar o par.
+n – vai + n linhas para baixo.
-n – vai n linhas para cima.

Busca de palavras
/palavra – procura palavra a partir da atual.
?palavra – procura palavra a partir da atual (voltando para o início do arquivo).
n – procura próxima ocorrência (na mesma direção de busca).
# – destaca todas as ocorrências iguais a palavra onde o cursor esta posicionado.

Operações com buffers
yy – Copia a linha inteira
nyy – coloca n linhas no buffer (copiar).
nY – coloca n linhas no buffer (copiar).
ndd – deleta as n linhas (a partir da atual) e coloca no buffer (copiar).
p – retira o conteúdo do buffer (colar) e coloca após a linha atual.
P – retira o conteúdo do buffer (colar) e coloca antes da linha atual.

Operações de bloco
ml – marca a linha l (mx marca a linha x, etc usando o alfabeto).
‘a – vai para a linha marcada a.
Para ler ou escrever o arquivo (ou parte dele) usa-se os comandos:
:r arquivo – ler o arquivo para dentro do arquivo atual, a partir do local atual.
:w  – salva alterações
:w abc – Grava arquivo com o nome ‘abc’
:q – sai sem modificar o arquivo (se foi alterado tem que usar :q!).
:wq – sai, salvando o arquivo editado.
ZZ – sai, salvando o arquivo editado.
:’a,’b[operação] – realiza a operação no bloco contido entre as marcas a e b.
:d – deleta a linha atual (útil como operação de blocos).
:s/string1/string2/ – substituí o string1 por string2

para repetir a linha acima caractere a caractere use  …….. Control + y
para repetir a linha abaixo caractere a caractere use …….. Control + e

Para trocar letras de lugar ……….. <esc>xp

============
Modo normal
============
Para tornar maiúscula uma palavra …………….. gUiw
Para tornar minúscula uma palavra …………….. guiw
para tornar maiúscula uma linha ………………… gUU

==============
Gravando uma macro
==============
<esc> ………………certificar-se de estar em modo normal
qa  ………………….. inicia macro ‘a’
icasa ……………….. entrar em modo insert ‘i’ e digitar casa
<Enter> ……………descer uma linha
<esc> ……………… sair do modo insert
q ……………………… parar a gravação da macro

Executando a macro
10@a ………………… executa a macro ‘a’ 10 vezes
@@ …………………… repete a última macro

Apagando linhas vazias ………………. :%g/^$/d

===================
Usando o comando bufdo
===================
Usando o comando bufdo

Com o comando :bufdo podemos executar um comando em um conjunto de arquivos de forma rápida. No exemplo a seguir, abriremos todos os arquivos HTML do diretório atual, efetuaremos uma substituição e em seguida salvamos todos.  A troca será feita de: bgcolor=”white” para bgcolor=”#eeeeee”

———————————————————————
Obs: uma substituição no vim é assim:
:%s/isto/este/g

% indica todo o arquivo
s indica substituição
/isto padrão a ser trocado
/este padrão que substituirá
g globalmente (todas as ocorrências de cada linha)
———————————————————————-

vim *.html
:bufdo %s/bgcolor=”white”/bgcolor=”#eeeeee”/g

Após isto salve todos os arquivos e saia:

:wall
:qall

O comando :wall salva (“write”) todos (“all”) os arquivos abertos pelo comando vim *.html. Opcionalmente você pode combinar :wall e :qall com o comando :wqall, que salva todos os arquivos abertos e em seguida sai do Vim.

Curta nossa fanpage em: www.facebook.com.br/servicoti

Acesse também nosso canal no YouTube: Canal Servti