VI ou Visual Editor é o editor de texto padrão do Linux, portanto possui a licença GNU (free for all)
O VI é o editor de texto que funciona em tela cheia (full screen) disponível para muitas plataformas, basicamente todo shell the linux (até mesmo os para android) possui o vi. Ele é muito famoso por ser 8 ou 80, ou o amam ou o odeiam devido a sua dificuldade inicial. Contudo com o tempo o vi se torna uma das mais poderosas ferramentas de edição de texto devido a sua performance e imensidão de atalhos.
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 Unix 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 pouco poder de armazenamento para ser utilizado em manutenção, por exemplo, ou mesmo usá-lo em situações em que há pouco recurso computacional. by Wikipedia
Vim também é um editor hexadecimal, para ativar digite:
:$!xxd
O vi foi projetado para ser usado em qualquer teclado, portanto ele funciona sem as setas, abaixo a legenda para navegar (no command mode)
Tecla Movimento do cursor
--- ---------------
h um passo para esquerda
j descer uma linha
k subir uma linha
l um passo para a direita
Para usar o vi, basta digitar:
vi
isso irá abrir uma tela para que você digite algo e posteriormente sabe o arquivo, porém vale a pena lembrar que ao digitar:
vi arquivo.x
O vi erá criar um arquivo arquivo.x vazio e irá aguardar por comando para salvar o arquivo (depois de digitar).
Após acessar o vi é perceptível que não é possível começar a digitar, isso por que o VI possui 2 modos:
Esse é o modo padrão no qual o vi abre.
No modo de comando é possível digitar sem que o arquivo seja modificado, pois todas as entradas (teclas apertadas) serão tratadas como tentativas de usar algum dos vários atalhos do vi. O comando para ir para o modo de edição do texto (Insert Mode) é i (isso mesmo, apertando a tecla i você pode começar a digitar seu texto)
Para sair do Insert Mode e voltar para o Command Mode, basta aperta a tecla esc.
Esse é o modo em que se pode escrever e fazer alterações, digite, apague, pressione enter para pular de linha e continue digitando.
Para sair do Insert Mode, aperte esc. Para voltar para ele, pressione i
Para criar um arquivo basta digitar os seguintes comandos:
vi
Pressione i para começar a editar, escreva algumas coisas e depois pressione a tecla esc
Apertando esc o programa entra no Command Mode (Modo de Comando) e nele é possível salvar o arquivo ou continuar editando, existem comandos para apagar linhas, palavras, para procurar por uma palavra e muitos outros, nesse momento vamos apenas salvar e sair. Para salvar e sair pressione as seguintes, uma por vez, teclas:
:wq
w = write (escrever = salvar) q = quit (sair)
Após digitar o comando o vi irá pedir um nome para o arquivo, escolha um nome e salve!
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
- abre uma linha abaixo da atual e insere texto nela.O
- abre uma linha acima da atual e insere texto nela.Observação: Para sair do modo de inserção de caracteres, pressione .
<DEL>
- exclui a letra anterior ao cursor (depende
da configuração).x
- exclui a letra sobre o cursor.n
x
- exclui as próximas n letras.dw
- exclui o restante da palavra atual (a partir do cursor).n
dw
- exclui as n próximas palavras.dd
- exclui a linha atual.n
dd
- exclui n linhas a partir da atual.u
- desfazer. Restaura o que foi apagado por último ou apaga o que
foi inserido por último.s
- 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 ).~
- inverte a caixa da letra atual (troca maiúscula por minúscula
e vice-versa)..
- repete a última alteração.Em 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 linhan
G
- vai para a linha n (0G
ou G
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./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.yy
ou Y
- copia a linha inteira.n
yy
ou n
Y
- copia n linhas.n
dd
- apaga n linhas (a partir da atual). Elas poderão ser
recolocadas com os comandos p
e P
.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.:'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.