vi
Este artigo não cita fontes confiáveis. (Março de 2016) |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Disambig_grey.svg/20px-Disambig_grey.svg.png)
O vi é um editor de texto do sistema operacional Unix e semelhantes.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/NetBSD_6.1_vi_C_Hello_World.png/200px-NetBSD_6.1_vi_C_Hello_World.png)
Histórico
editarO 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
editarPara 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
editarO uso de comandos requer a entrada em Command Mode, que pode ser feita primindo <ESC>.
Inserção de caracteres
editari
- 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
- abre uma linha abaixo da atual e insere texto nela.O
- abre uma linha acima da atual e insere texto nela.
Exclusão de caracteres
editar- <DEL> - exclui a letra anterior ao cursor (depende da configuração).
x
- exclui a letra sobre o cursor.nx
- exclui as próximas n letras.dw
- exclui o restante da palavra atual (a partir do cursor).ndw
- exclui as n próximas palavras.dd
- exclui a linha atual.ndd
- exclui n linhas a partir da atual.
u
- desfazer. Restaura o que foi apagado por último ou apaga o que foi inserido por último.
Substituição de caracteres
editars
- apaga a letra atual e entra no modo de inserção.S
- apaga o conteúdo da linha atual e entra no modo de inserção.r
- substitui a letra atual (não entra no modo de inserção).R
- entra no modo de substituição (sai com <ESC>).~
- inverte a caixa da letra atual (troca maiúscula por minúscula e vice-versa)..
- repete a última alteração.
Movimentação de cursor
editarEm algumas dessas situações as setas também funcionam.
j
- uma linha para baixok
- uma linha para cimah
- um caracter para a esquerdal
- um caracter para a direitab
- volta para o início da palavra.w
- avança para a próxima palavra.0
- início da linha$
- fim da linhanG
- vai para a linha n (0G
ouG
vai para a última linha).%
- usado com parênteses, colchetes e chaves para achar o par correspondente.+n
- vai n linhas para baixo.-n
- vai n linhas para cima.
Busca de palavras
editar/palavra
- procura palavra a partir da posição atual.?palavra
- procura palavra no sentido contrário (na direção do começo do arquivo).n
- procura próxima ocorrência da última palavra procurada (na mesma direção em que foi buscada).#
- destaca todas as ocorrências iguais à palavra onde o cursor está posicionado.
Operações com buffers
editaryy
ouY
- copia a linha inteira.nyy
ounY
- copia n linhas.ndd
- apaga n linhas (a partir da atual). Elas poderão ser recolocadas com os comandosp
eP
.p
- coloca após a linha atual a última linha copiada ou apagada.P
- coloca antes da linha atual a última linha copiada ou apagada.
Operações de bloco
editar:'a,'b[operação]
- realiza a operação no bloco contido entre as marcas a e b.:d
- exclui a linha atual (útil como operação de blocos).:s/string1/string2/
- substitui string1 por string2.
mx
- marca a posição atual como x (pode ser usada qualquer letra do alfabeto).`x
- vai para a posição previamente marcada como x.
Para ler ou escrever o arquivo (ou parte dele) usam-se os comandos:
:r arquivo
- inserir o conteúdo do arquivo na posição atual do arquivo que está sendo editado.:w
- salva alterações.:w abc
- grava arquivo com o nome abc.:q
- sai se o arquivo não foi modificado.:q!
- sai descartando quaisquer alterações não gravadas.:wq
- sai, salvando o arquivo editado.ZZ
- sai, salvando o arquivo editado.
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
editarBibliografia
editar- Lamb, Linda; Robbins, Arnold (1998). Learning the vi Editor. Beijing: O´Reily. 327 páginas. ISBN 1-56592-426-6
- Peek, Jerry, O´Reilly, Tim; Loukides, Mike (1997). Unix Power Tools 2ª ed. Beijing: O´Reily. 1073 páginas. ISBN 1-56592-260-3