Dicas para o Vi

No post anterior, comentei sobre o editor de textos Vi. Neste post, vou colocar algumas ‘colinhas’ de alguns comandos que podem ser utilizados quando se está trabalhando com o Vi.

Entrando no modo de inserção

Como já falado no post anterior, nesse modo, podemos inserir os caracteres. Abaixo, algumas teclas que podemo ser utilizadas para entrar no modo de Inserção… lembrando que, para usar essas teclas… tem que estar no modo de comando.

✔ i => insere texto antes do cursor.
✔ I => insere texto no início da linha atual.
✔ a => insere texto após o cursor.
✔ 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.

Apagando caracteres

✔ Del ou Delete => apaga a letra que está na frente do cursor.
✔ x => deleta a letra em que o cursor está; Nx deleta as próximas n letras.
✔ dw => deleta o restante da palavra atual; Ndw deleta as n próximas palavras.
✔ u => undelete – desfaz a última ação.
✔ ctrl+r => refaz a última ação desfeita.
✔ dd => deleta a linha atual; Ndd deleta n linhas a partir da atual.

OBS.: O “N”, é a quantidade de linhas ou caracteres que você deseja editar 😉 !

Substituindo caracteres

✔ s => substitui a letra atual e entra no modo de inserção.
✔ S => substitui a linha atual e entra no modo de inserção.
✔ r => substitui a letra atual e não entra no modo de inserção.
✔ R => entra no modo de substituição (sai com <ESC>).
✔ ~ => substitui maiúsculo/minúsculo.
✔ :1,$s/palavra1/palavra2/g => substitui a palavra1 pela palavra2

Copiar, recortar e colar? Oba, o Vi também tem esses recursos!

✔ nyy => copia N linhas posteriores.
✔ nY => copia N linhas anteriores.
✔ ncc => recorta N linhas a partir da atual.
✔ p => cola N linhas após a linha atual.
✔ P => cola N linhas antes da linha atual.

Navegando no Texto

Para não ficar perdido em um texto, podemos usar as opções abaixo para navegar pelo texto:

✔ j => uma linha para baixo.
✔ h => uma letra para a esquerda.
✔ b => volta no início da palavra.
✔ e => vai para o fim da palavra.
✔ $ => fim da linha.
✔ +n => vai N linhas para baixo.
✔ k => uma linha para cima.
✔ l => uma letra para a direita.
✔ w => vai pra a próxima palavra.
✔ 0 => início da linha.
✔ nG => vai para a linha N.

Realizando buscas com o VI

É possível realizar buscas utilizando o Vi. Esse recurso é útil quando você está editando um arquivo muito extenso e não quer ficar lendo tudo 😉 .
Para utilizar essa facilidade do Vi, no modo de comando, utilize as opções abaixo:

✔ /palavra => procura palavra a partir linha da atual.
✔ ?palavra => procura palavra voltando no início do arquivo.
✔ n => procura a próxima ocorrência na mesma direção de busca.
✔ N => procura a ocorrência anterior.
✔ :set number => coloca a numeração de linhas

Salvar e sair

Como todo bom editor de textos, também é possível salvar as alterações no arquivo que editamos.
Para isso, basta utilizar uma das opções abaixo:

✔ :w => salva o arquivo.
✔ :q => sai do arquivo.
✔ :q! => sai sem salvar as modificações do arquivo.
✔ :wq => salva e sai do arquivo editado.
✔ ZZ => em modo de comando, é o soninho do Vi… ‘Zalva’ e ‘Zai’ do arquivo editado.
✔ : x => salva e sai do arquivo editado.

É isso aí pessoas… para conhecer mais sobre o vim:

# vimtutor

Obs.: para sair do vimtutor, é como sair de um arquivo… tem que entrar no modo de linha de comando e teclar :q!

Até o próximo post!

Perdendo o medo do editor de textos Vi

Cedo ou tarde, todo administrador de sistema precisa escrever um texto, editar um arquivo de configuração, escrever um script, etc.

Existem vários editores de textos no modo gráfico, como por exemplo o kate, o gedit, etc.

Mas, imaginando que estamos em um servidor onde nem interface gráfica está instalada, temos que lançar mão de um editor em modo texto… existem vários editores que podem ser usados em linha de comando tais como o Vi, o nano, o pico, emacs e por ai vai.

Vou comentar nesse post algumas operações básicas do Vi (Visual editor) – criar um arquivo, editar, salvar… e a parte legal de aprender mexer no Vi, é que não ficamos presos a um editor que só funciona se existir interface gráfica configurada, e, independente da distribuição que estivermos usando, lá teremos o bom e velho Vi.

As distribuições atuais já trazem instalado por padrão o Vim, que é Vi IMproved, ou seja, uma versão melhorada do Vi original do Unix. Aqui, estou usando o Vim, mas, basicamente, o que falar no post, se aplica ao Vi também.

A primeira coisa que vamos aprender sobre o Vi, é que ele possui 3 modos de trabalho:

Comandos: Uma sessão de edição sempre começa nesse modo de operação. Quando estamos no modo comandos, podemos caminhar pela tela de edição e utilizar os comandos para manipular o texto.

Inserção: Somente nesse modo podemos alterar um texto na tela..

Linha de comando: Alguns comandos de edição devem ser digitados na última linha da tela. Para indicar ao Vi que vamos trabalhar em linha de comando, utilizamos o caracter “:” (dois pontos) sem as aspas.

Para aprender sobre o Vi, nada melhor do prática… então, vamos criar um arquivo com o Vi! No terminal, digite:

# vi
~
~

Quando digitamos Vi, sem nenhum argumento, surge aquela tela assustadora sem ícones, ou botão de fechar 😛 . Mas não precisamos ter medo dessa tela… pois o Vi abre no modo de Comandos, e, está apenas esperando que você dê uma ordem para que ele possa executar!

Fazendo uma comparação, seria como se abrisse o bloco de notas para criar um novo arquivo.

Então, vamos dar uma ordem para o Vi… vamos escrever na tela que surgiu! Para isso, vamos teclar “i“. Quando teclamos i, o Vi entra no modo de inserção, e, irá mostrar no canto inferior esquerdo da tela, a palavra — INSERT —  .

Esse INSERT é uma melhoria que Vim traz;  o Vi original não é tão didático… você tecla “i”, mas ele não te mostra se entrou em modo de inserção.

Continuando… quando estamos no modo de inserção, podemos começar a digitar:

Estou pronto para usar o Vi.

Após digitar a linha acima, vamos teclar ESC para salvar o arquivo.

Uma coisa importante para se falar é que, enquanto estiver com o modo de inserção ativado, podemos continuar digitando… e quando terminar, basta voltar ao modo de comandos… para isso, basta teclar ESC.

Quando teclamos ESC, não vamos conseguir digitar mais nada… e fica aqui uma dica! Se você não lembrar em que modo do Vi esta (edição, comando, linha de comando), basta teclar ESC, que ele volta ao padrão, que é o modo de comandos.

Para salvar o que digitamos no Vi, basta teclar ESC e ir para o modo de linha de comando, que também é conhecido como modo de comando de última linha, e é representado por : (dois pontos).

Então, no modo de linha de comando, vamos fazer assim:

:w texto.txt

Com o comando acima, estamos salvando o arquivo (w=write) com o nome de texto.txt, mas ainda continuamos nele, o que significa que podemos voltar a escrever ou sair dele!

Para sair do Vi, basta entrar novamente no modo de linha de comando e fazer:

:q

Onde o q acima, é quit, ou seja, saída!

É importante entender que, o arquivo que criamos acima como exemplo, será salvo no diretório em que estamos no momento. Portanto, caso crie um arquivo novo, e queira salvar em outro local, teria que especificar para o Vi onde o arquivo seria salvo.

Por exemplo:

: wq /tmp/texto.txt

Nesse exemplo, estou mostrando que o Vi aceita combinações no modo de linha de comando, e acima, estou pedindo para o vi salvar (w) e sair (q). E o arquivo, será salvo dentro do /tmp com o nome de texto.txt.

O exemplo que vimos, foi para criar um arquivo novo e designar um nome para ele depois! Mas poderíamos ter feito assim:

# vi post.txt

Onde, se o arquivo post.txt não existir, será criado na hora, e, se o arquivo já existir, poderemos editá-lo!

É importante falar que o Vi tem mil maneiras de fazer a mesma coisa, e vários comandos que ajudam a trabalhar com ele… daí, você escolhe a maneira que mais se adapta. E não precisa ficar desesperado porque descobriu que odeia o Vi e prefere outro editor de textos, porque no máximo o que vai acontecer é você aprender uma maneira nova de trabalhar com arquivos em modo texto 😉 !

Até o próximo post!