Você está na página 1de 6

INSTITUTO SUPERIOR DE CINCIAS DO TRABALHO E DA EMPRESA

Sistemas Operativos
ETI - IGE

2 Semestre
2005/2006

Ficha 2

Editor de Texto: vi

1. Invocar o vi
Invoque o vi usando o seguinte comando:
> vi teste.c

(o > simboliza o "prompt" e no para escrever)

se o ficheiro existir aparece o seu contedo anterior, seno aparece o ecr vazio.
(os ~ simbolizam apenas linhas vazias).

2. Sair do vi
Para sair do vi use o seguinte comando:
:q

depois de escrever o : o cursor deve ir para a ltima linha; l que aparece o q.

Se, em vez do comando, o :q aparece escrito no texto porque o vi est em modo de insero de
texto. Se isso acontecer carregue na tecla <ESC> e repita.
Se entretanto houve alteraes, ao fazer este comando aparece a mensagem:
"E37: No write since last change (add ! to override)"
como a prpria mensagem indica, pode forar a sada com o comando:
:q!

sai sem guardar as alteraes, forando a sada.

3. Alterao do contedo de um ficheiro


Estando no vi, use a seguinte sequncia para alterar o texto
i escrever qualquer coisa <ESC>
Ao escrever o i no deve acontecer nada de visvel. O efeito apenas entrar no modo de edio.
O que escrever a seguir ao i deve aparecer no texto, e assim deve continuar at carregar no <ESC> que
permite sair do modo de edio.
Se ao escrever o i, este aparece no texto, porque j estava em modo de edio. Carregue em <ESC> e
repita.
Repita a sequncia anterior usando, em vez do i, uma das seguintes letras: (todas passam ao modo de
insero; s varia o ponto de incio)
a

Qual o efeito ?

A
I

4. Movimentao no texto
Pode-se movimentar no texto de duas maneiras: usando as setas ou usando os seguintes comandos
ISCTE DCTI

Sistemas Operativos

Pg. 1

movimenta para baixo

j
k
h
l

Se, em vez dos comandos, aparecem as letras escritas no texto carregar primeiro na tecla <ESC>.

5. Exerccios
Complete:
- quando entramos no vi estamos em modo comando.
- neste modo as teclas servem para __________________.
- alguns comandos (por exemplo i ou ____) servem para passar ao modo texto.
- no modo texto as teclas servem para ________________________.
- para sair do modo texto usa-se a tecla ____.
- se eu der um comando e ele aparecer escrito porque _______________ devo primeiro ________

6. Guardar um ficheiro
Para guardar um ficheiro use o seguinte comando:
guarda o ficheiro;

:w

Se depois quiser sair do vi, escreve :q. Pode abreviar fazendo


:wq
guarda o ficheiro e sai do vi
Se quiser atribuir um nome diferente do nome actual (ou se nao tem nome actual) pode escrever:
:w /tmp/novo_ficheiro.txt

7. Apagar texto
Para apagar texto pode usar os seguintes comandos:
x
dd
J

apaga um carcter
apaga uma linha
apaga uma mudana de linha (junta duas linhas);

8. Repetio de comandos
Muitos comandos repetem-se se os anteceder de um nmero. Por exemplo:
5x
5ixESC

apaga 5 caracteres
escreve x 5 vezes (quer dizer, repete 5 vezes a insero de um x)

9. Undo
Pode anular o efeito do ltimo comando com:
u anula o efeito do ltimo comando
U anula todas as alteraes na mesma linha

10.

Substituio de texto

Para substituir texto em edio pode usar as seguintes sequncias:

ISCTE DCTI

Sistemas Operativos

Pg. 2

rx
R
3s

comando r, seguido de uma letra, substitui o caracter actual pela letra dada.
comea a escrever por cima, at ESC
substitui at marca $ (que aparece 3 caractares adiante) e continua inserindo at ESC.

Para substituir texto em todo o ficheiro pode usar o comando:


:%s/ab/c

substitui a primeira ocorrncia de ab por c, em todas as linhas do ficheiro

seguido de /g substitui todas as ocorrncias em cada linha

11.

Procura de texto

Para procurar texto pode usar:


/xim
n
?

12.

procura a sequncia indicada


repete para baixo (s / tambm)
repete para cima

Copiar e Colar

A sequncia de comandos
Y
P

guarda uma linha (no buffer)


repe a linha anteriormente guardada (no buffer)

Isto , faz copy/paste de uma linha.


O Y salva a linha actual para um buffer;
O P repe o contedo actual do buffer; p tambm repe, mas abaixo da linha actual.
O repetidor funciona sobre o Y; por exemplo:
5Y

guarda 5 linhas no buffer;

Os comandos que apagam salvam para o mesmo buffer; exemplo:


dd
P

ISCTE DCTI

apaga uma linha (e salva)


repe, na linha actual.

Sistemas Operativos

Pg. 3

Resumo dos comandos Vi


Lanar o vi:

vi lana o vi
vi <fich> - lana o vi e abre o ficheiro <fich>

Modos do vi

Modo de comando
Modo de edio
Modo de ltima linha

Mudar de modos
Esc
:
i

passar ao modo de comando


modo de comando modo de ltima linha
modo de comando modo de insero

Movimentao
h ou
l ou
k ou
j ou
nk
nj
b
w
0
$
ctrl-f ou PgDn
ctrl-b ou PgUp
1G ou gg
G
nG

esquerda
direita
cima
baixo
n linhas para cima
n linhas para baixo
palavra anterior
palavra seguinte
incio da linha
fim da linha
avanar um cran
retroceder um cran
1 linha
ltima linha
n-sima linha

Edio
i
a
A
Del ou x
o
O
r
R

passar ao modo de insero na posio do cursor


passar ao modo de insero na posio a seguir ao cursor
passar ao modo de insero a partir do fim da linha actual
apagar caracter (o backspace apaga em modo de insero)
inserir linha (em baixo) e passar ao modo de insero
inserir linha (por cima) e passar ao modo de insero
substituir caractere
substituir texto

Cortar, Copiar, Colar e Undo


ISCTE DCTI

Sistemas Operativos

Pg. 4

<caractere>
v
V
d
dd ou D
dw
y
yy ou Y
yw
p
P
u
U
Ctrl-r

utilizar o registo <caracter> para operaes de cortar, copiar e


colar. Por defeito utiliza-se o registo 0
comear seleco (visual mode)
comear seleco por linhas
cortar (cut) seleco para registo corrente
cortar linha
cortar palavra
copiar (copy) seleco para registo corrente
copiar linha
copiar palavra
colar (paste) aps o cursor
colar antes do cursor
undo
undo a uma linha
redo

Outros comandos
Marcas
m<letra>
<letra>

inserir marca <letra> na posio do cursor


saltar para a marca <letra>

Sair e suspender
ZZ
Ctrl-z

gravar e sair
suspender e ir para a shell (para voltar fazer fg vi)

Procurar texto
/<texto>
n
N

procurar <texto> a partir da posio do cursor


repetir ltima procura
repetir ltima procura na direco oposta

Informao
Ctrl-g

Mostra informao sobre o ficheiro

Ajuda
F1

Ajuda do Vi

Ajuda
:help ajuda do vi

Ficheiros
:w gravar
:wq gravar e sair
:q! sair sem gravar
:e <ficheiro> - abrir novo ficheiro
:r <ficheiro> - abrir ficheiro e acrescent-lo ao texto actual

Registos
:reg ver contedo dos registos
ISCTE DCTI

Sistemas Operativos

Pg. 5

Executar comandos da shell


:! <comando> - executar comando da shell a partir do vi

Substituio de texto
:<range>s/<texto1>/<texto2>/<flags>
Procurar ocorrncias de <texto1> na parte do documento definido por <range> e substituir por <texto2>,
de acordo com as opes indicadas em <flags>
Range:
% todo o documento
<n>,<m> linhas entre <n> e <m>
.,<n> posio do cursor at linha <n>
<a>,<b> - da marca <a> at marca <b>
flags:
& - usar as opes da substituio anterior
c confirmar cada substituio
g substituir todas as ocorrncias numa linha (sem esta opo s substituda a primeira ocorrncia de
cada linha)
Exemplos de substituio de texto
:%s/aguia/leao/g
procurar em todo o ficheiro e substituir aguia por leao
:5,10s/Gervasio/Jeremias/gc
procurar entre as linhas 5 e 10 e substituir Gervasio por Jeremias, confirmando cada substituio
:a,bs/ol/adeus/g
procurar ol e substituir por adeus entre as marcas a e b

Fontes: Manual do Vi; Fundamental do Linux

ISCTE DCTI

Sistemas Operativos

Pg. 6

Você também pode gostar