Este artigo não cita fontes confiáveis. Ajude a inserir referências. Conteúdo não verificável pode ser removido.—Encontre fontes: ABW  • CAPES  • Google (N • L • A) (Março de 2016)
Um programa em C sendo editado no vi no NetBSD

O vi é um editor de texto do sistema operacional Unix e semelhantes.

Histórico

O programa foi criado por Bill Joy em 1976 para o BSD. O nome é uma forma abreviada para visual, um comando do editor de texto ex que o faz oferecer recursos parecidos com os do vi.

Em 1991, foi lançado o editor Vim, uma derivação melhorada do vi (o nome Vim é abreviação para Vi IMproved, ou Vi Melhorado). Ele está presente em quase todas as distribuições Linux, oferecendo mais recursos.

Usuários do editor Emacs, que também surgiu em 1976, acabam sempre gerando discussões com usuários mais assíduos do vi por questões de gosto pessoal, apesar de que o padrão POSIX exige a presença do editor vi o que o torna mais disseminado.

Como é pequeno e leve, pode ser colocado dentro de mídias com pouca capacidade de armazenamento para ser utilizado em manutenção, por exemplo, ou mesmo usá-lo em situações em que há pouco recurso computacional.

Uso

Para chamar o editor, use esta sintaxe:

vi arquivo

Onde arquivo é um arquivo do diretório atual ou um caminho e nome de um arquivo presente em algum sistema de arquivos.

Uma vez iniciado, o editor entra no modo visualização e aguarda comandos do usuário. Para entrar no modo edição que permite alterar o texto, tecle <Insert>. Enquanto estiver no modo edição o editor não recebe comandos, para retornar ao modo visualização tecle <ESC>.

Comandos mais usados

O uso de comandos requer a entrada em Command Mode, que pode ser feita primindo <ESC>.

Inserção de caracteres

Exclusão de caracteres

Substituição de caracteres

Movimentação de cursor

Em algumas dessas situações as setas também funcionam.

Busca de palavras

Operações com buffers

Operações de bloco

Para ler ou escrever o arquivo (ou parte dele) usam-se os comandos:

Nota: Os comandos podem ser repetidos n vezes, através da inserção de n<command>. (Por exemplo, nk para subir n linhas, nx para apagar n caracteres ou ndd para apagar n linhas, etc.)

Ver também

Bibliografia