Sei sulla pagina 1di 6

Manual de <em>vi</em> Página 1 de 6

Adaptado de "Charlie user manual - vi",


por Leonardo Lazarte, 1996. (traduzido parcialmente, faltam pontos G e H)

Editor de Texto vi, Manual do Usuário


vi é um editor de texto utilizado em terminais de caracteres, inclusive em janelas num
Terminal X.

Em vi sempre maiúsculas e minúsculas fazem diferença.

A. Iniciando a Edição

Para entrar em vi escreva:

l vi (op ções) arquivo

Se o arquivo já existe, a primeira página será mostrada na tela e a linha de baixo será
utilizada para mostrar o estado atual e os comandos utilizados.

Se o arquivo não existir, ele será criado.

As opções mais comuns são:

+n -a edição inicia na linha n do


arquivo. (n é um númerio decimal)
+ -a edição inicia na última página.
+/<text> -a página mostrada têm a primeira
linha do arquivo que contendo os caracteres
<text>
-r -vi tenta recuperar o que possa ter sido salvo do arquivo
se houve uma interrupcao da sessao.
-R -mostra o arquivo, mas nao o modifica ("read-only").
-wn -serao mostradas as n primeiras linhas na tela.

Exemplos:

l vi +100 arq.dois
O arquivo arq.dois será editado a partir da pagina que começa na linha 100.

l vi +/Fundamento arq.2.2
Será mostrada na tela a primeira linha que contenha a cadeia de caracteres "Fundamento".

l view nome_do_arquivo

http://www.mat.unb.br/lab/vi.html 20/08/00
Manual de <em>vi</em> Página 2 de 6

O arquivo será visto sem modificá-lo, iniciando a sessão no modo de leitura.

B. Os Modos de vi

vi tem dois modos, um para incluir texto num arquivo, modo de entrada, e outro para
manipular texto e navegar pelo arquivo, modo de comando.

Modo de Entrada - Os caracteres digitados são introduzidos como texto no arquivo.

Modo de Comando - Permite navegar pelo arquivo, utilizando as teclas h, j, k e l


(esquerda, abaixo, acima, direita). Utilizando os dois pontos, ":", o cursor se posiciona na
ultima linha da tela, permitindo utilizar varios comandos.

Para iniciar o Modo de Entrada, utilizar as seguintes teclas:

a - inicia a entrada do texto a partir da posicao do cursor


posterior à atual.
i - a entrada de texto se inicia a partir da posicao atual
do cursor.
A - a entrada se inicia no fim da linha atual.
I - a entrada se inicia no inicio da linha atual.
o - o texto é introduzido na linha anterior à atual.
O - o texto é introduzido na linha posterior à atual.

Para concluir o Modo de Entrada, utilize a tecla <ESC>.

Há duas opcoes para concluir a edicao ("sair" de vi) (deve-se estar em Modo de
Comando).

1. Para sair sem salvar seu trabalho, digite:


:q!<ENTER>
2. Para sair salvando seu trabalho, digite:
:wq<ENTER>
ou digite:
ZZ

C. Forma Geral dos Comandos vi

A maioria dos comandos sao dados no Modo de Comando, precedidos por ":.

a forma geral dos comandos vi é:

[número]operador[número]argumento

Exemplo

http://www.mat.unb.br/lab/vi.html 20/08/00
Manual de <em>vi</em> Página 3 de 6

dd - apaga a linha atual.


d$ - apaga todos os caracteres desde o cursor ate o fim
da linha atual.
5dd - apaga 5 linhas, comecando com a linha atual.

Nestes comandos, "d" e' o comando para apagar (delete), a segunda letra indica ate onde
deve se apagar. O número 5 diz que o comando deve ser aplicado 5 vezes.

D. Comandos vi

Em Modo de Comando, o cursor pode ser movimentado digitando:

j ou "seta para baixo" - mover para a linha de baixo.


k ou "seta para cima" - mover para a linha de cima.
l ou "seta para esquerda" - avance uma letra.
h ou "right arrow" - recue uma letra.
F<caracter> - recue ate o caracter especificado.
f<caracter> - avance ate o caracter especificado.
w - pule para o inicio da proxima palavra.
b - pule para o inicio da palavra anterior.
^ - pule para o inicio desta linha.
<ENTER> - pule para o inicio da proxima linha.
- - pule para o inicio da linha anterior.
$ - pule para o fim da linha atual.
nG - pule para o inicio da n-ésima linha.
G - pule para o inicio da última linha do arqu
H - pule para o inicio da primeira linha
(desta tela).

E. Comandos para movimentar a tela

CTRL-F - avanca uma tela ("forward").


CTRL-B - recua uma tela (backward).
CTRL-U - recua meia tela.
CTRL-D - avanca meia tela.
CTRL-L - re-desenha a tela (util quando
por algum motivo qualquer aparece
sujeira na tela, ou nao se tem
certeza se o que esta sendo mostrado
coincide com o conteudo do arquivo.

F. Comandos para eliminar texto

x - apaga o caracter sob o cursor.


X - apaga o caracter à esquerda do cursor.
dW - apaga a palavra corrente.

http://www.mat.unb.br/lab/vi.html 20/08/00
Manual de <em>vi</em> Página 4 de 6

dd - apaga a linha atual.


d$ - apaga desde o cursor ate o fim da linha.
D - apaga desde o cursor ate o fim da linha.
d0 - apaga desde o cursor ate o inicio da linha
CTRL-U - apaga o texto introduzido na ultima linha
editada (em Modo de Entrada).

G. Comandos para substituir texto

r<character> - replace the current character with the


character specified by the command
R - replacing starts with the current
character and ends at <Esc>
s - substitutes the specified number of
characters for the current character,
for example, 2sda replaces the current
character with 'da'
S - delete the specified number of lines
(1 if nothing is specified) and
replace them with the entered
text)

Comandos de Busca

/<text><ENTER> - search forward for the string specified by


<text> starting from the current cursor
position

/<text>/-n<ENTER> - search forward for the string specified by

<text> starting from n lines before the


current cursor position

?<text><Enter> - search backward for the string specified by


<text> starting from the current cursor
position

n - repeat the last search command

Note:
To include in the searched string special characters like $, ~,^,[,],\,.,*, you must prefix
them with the backslash character.

H. Movimentando Blocos de Texto (Cortar e Colar, ou "Cut and Paste")

One way to move a text block in vi is the following:

http://www.mat.unb.br/lab/vi.html 20/08/00
Manual de <em>vi</em> Página 5 de 6

#dd - erase the number (#) of lines contained in block; during the deletion the lines are
put in a special buffer named "paste buffer". Next, move the cursor to the line where you
want to put the block, then press "p" to insert the "paste buffer" contents after the line on
which the cursor is positioned.

For multiple insertions of a single line,


- move the cursor to the beginning of the line,
- copy the entire line into buffer 'a' with command
ayy
- move the cursor the line after which you want to make
the copy and type the command ap. Now, the line is
copied but remains in buffer a and can be inserted
in many other places.

I. Cancelando Comandos

O comando "u" (desfazer, ou "undo"), cancela o efeito do ultimo comando.

O comando "U" retorna a linha atual ao que era antes de editá-la.

J. Repetindo Comandos

Para repetir o último comando, digite o ponto, ".". Isto pode ser feito em qualquer ponto
do arquivo.

K. Comandos da Linha de Comando

Comandos que modificam o arquivo podem ser dados na última linha da tela, em vez de
na posicao do cursor no texto. Quando se digita ":", vi "lembra" a posicao atual do cursor,
que passa para a última linha.

l Para substituir texto na linha atual, digite:


:s/velho_texto/novo_texto/g
este comando substitui todas as ocorrencias de "velho_texto"
na linha atual por "novo_texto". (Se nao tiver a opcao "g",
so a primeira ocorrencia sera substituida).

l Substituicao de texto numa parte do arquivo:


:n1,n2s/velho_texto/novo_texto/g
este comando substitui todas as ocorrencias (g) de "velho_texto"
com "novo_texto", em todas as linhas entre n1 e n2 deste arquivo.

http://www.mat.unb.br/lab/vi.html 20/08/00
Manual de <em>vi</em> Página 6 de 6

:1,$s/velho_texto/novo_texto/g
como $ significa a ultima linha do arquivo, este comando
substitui "velho_texto" por "novo_texto" no arquivo todo.

l Comandos de busca e substituicao:


:g/velho_texto/s//novo_texto/
busca a proxima ocorrencia de "velho_texto" no arquivo, e
substitui por "novo_texto".

:g/demora/s//parada/gp
buscara todas (ultimo "g") as ocorrencias de "demora" e as
substituira por "parada" em todas as linhas (primeiro "g")
do arquivo.

l Incluir outro arquivo, durante a edicao:


:r outro_arquivo
le o conteudo de "outro_arquivo", inserindo-o na posicao
atual do cursor.

l Salvando o arquivo, sem sair (recomendado a cada 15 minutos):


:w

l Salvando em outro arquivo (Salve Como, ou "Save As"):


:w outro_arquivo

l Para salvar linhas selecionadas:


:10,15w nome_arquivo
grava todas as linhas entre 10 e 15 no arquivo de nome
"nome_arquivo".

l Saindo de vi:
:q - finalizar a sessão de edição.
:q! - sair sem salvar o arquivo que está sendo editado.
:wq - sair, salvando o arquivo que foi editado.
ZZ - sair, salvando o arquivo que foi editado.

http://www.mat.unb.br/lab/vi.html 20/08/00

Potrebbero piacerti anche