3.4. Editor vi

Os editores de texto ainda são usados por várias tarefas da administração do sistema como também para programação. No mundo do Unix, vi significa um editor que oferece funções de edição confortáveis e é mais ergonômico que muitos editores com suporte de mouse.

3.4.1. Modos de funcionamento

[Note]Exibição de teclas

A seguir, você encontra vários comandos digitados no vi com o simples pressionamento de teclas. Elas aparecem em letra maiúscula, como no teclado. Caso precise digitar uma tecla em maiúscula, isso ocorre explicitamente com uma combinação que inclui a tecla Shift.

Basicamente, o vi tem três modos de funcionamento: modo de inserção, modo de comando e modo estendido. As chaves têm funções diferentes dependendo do modo. Na inicialização, o vi é normalmente definido para o modo de comando. A primeira coisa a aprender é como alternar entre os modos:

Modo de comando para Modo de inserção

Existem várias possibilidades, incluindo A para anexar, I para inserir ou O para uma nova linha sob a linha atual.

Modo de inserção para Modo de comando

Pressione Esc para sair do modo de inserção. O vi não pode ser encerrado no modo de inserção; portanto, é importante acostumar-se a pressionar Esc.

Modo de comando para Modo estendido

O modo estendido do vi pode ser ativado digitando-se dois-pontos (:). O modo estendido ou modo ex é semelhante a um editor independente orientado a linhas que pode ser usado para tarefas simples ou mais complexas.

Modo estendido para Modo de comando

Após executar um comando no modo estendido, o editor retorna automaticamente para o modo de comando. Se você decidir não executar nenhum comando no modo estendido, apague os dois-pontos com <—. O editor retorna para o modo de comando.

Não é possível alternar diretamente do modo de inserção para o modo estendido sem primeiro alternar para o modo de comando.

O vi, como outros editores, tem o seu próprio procedimento para terminar o programa. Você não pode terminar o vi enquanto estiver no modo de inserção. Primeiro, saia do modo de inserção pressionando Esc. Subseqüentemente, há duas opções:

  1. Sair sem gravar: Para encerrar o editor sem gravar as mudanças, digite : Q ! no modo de comando. O ponto de exclamação (!) faz com que o vi ignore quaisquer mudanças.

  2. Gravar e sair: Existem várias possibilidades para gravar suas mudanças e terminar o editor. No modo de comando, use Shift-Z-Shift-Z. Para sair do programa e gravar todas as mudanças com o modo estendido, digite : W Q. No modo estendido, w corresponde a write (gravar) e q a quit (sair).

3.4.2. vi em Ação

O vi pode ser usado como um editor normal. No modo de inserção, digite e apague texto com as teclas <— e Del. Use as teclas de seta para mover o cursor.

No entanto, estas teclas de controle geralmente causam problemas, porque existem vários tipos de terminais que usam códigos de tecla especiais. É aqui que o modo de comando entra em ação. Pressione Esc para alternar do modo de inserção para o modo de comando. No modo de comando, mova o cursor com H, J, K e L. Essas teclas têm as seguintes funções:

H

move um caractere para a esquerda

J

move uma linha para baixo

K

move uma linha para cima

L

move um caractere para a direita

Os comandos no modo de comando permitem diversas variações. Para executar um comando várias vezes, simplesmente digite o número de repetições antes de digitar o comando real. Por exemplo, digite 5 L para mover o cursor cinco caracteres para a direita.

Uma seleção de comandos importantes é mostrada na Tabela 3.1, “Comandos simples do Editor vi”, mas esta lista ainda está bastante incompleta. Mais listas completas estão disponíveis na documentação encontrada na Seção 3.4.3, “Mais informações”

Tabela 3.1. Comandos simples do Editor vi

Esc

Muda para o modo de comando

I

Muda para o modo de inserção (caracteres aparecem na posição do cursor atual)

A

Muda para o modo de inserção (caracteres aparecem depois da posição do cursor atual)

Shift-A

Muda para o modo de inserção (caracteres são adicionados no fim da linha)

Shift-R

Muda para o modo de substituição (sobregrava o texto antigo)

R

Substitui o caractere sob o cursor

O

Muda para o modo de inserção (uma nova linha é inserida após a atual)

Shift-O

Muda para o modo de inserção (uma nova linha é inserida antes da atual)

X

Apaga o caractere atual

D D

Apaga a linha atual

D W

Apaga a palavra atual até o fim

C W

Muda para o modo de inserção (o resto da palavra é sobregravado pelas próximas entradas do usuário)

U

Desfaz o último comando

Ctrl-R

Refaz a mudança que foi desfeita

Shift-J

Une a linha seguinte à linha atual

.

Repete o último comando

3.4.3. Mais informações

O vi suporta uma grande variedade de comandos. Ele permite o uso de macros, atalhos, buffers nomeados e vários outros recursos úteis. Uma descrição detalhada das várias opções excederia o escopo deste manual. O SUSE Linux é fornecido com vim (vi aperfeiçoado), uma versão melhorada do vi. Existem diversas fontes de informações para este aplicativo:

[Important]A Licença do VIM

O vim é “software para caridade” o que significa que os autores não cobram pelo software mas o encorajam a suportar um projeto sem fins lucrativos com uma contribuição monetária. Este projeto solicita ajuda para crianças pobres na Uganda. Há mais informações disponíveis online em http://iccf-holland.org/index.html, http://www.vim.org/iccf/ e http://www.iccf.nl/.