You are on page 1of 7

Manual de vi:

Introduccin

Modo Comando.

Secuencia de comandos bsicos

Comados bsicos

Movimientos dentro del archivo

Bsqueda de strings

Modo Edicin

Correcciones

Comandos ex

Bsqueda y reemplazo global

Quick Reference

Introduccin:
El vi es el editor estndar de Unix. Este trabaja en modo 'full screen' . El vi tiene dos modos de trabajo:
-comandos e inserccin. En el modo comandos todo lo que el usuario introduce es interpretado como un
comando;
-en el modo inserccin lo que el usuario introduce es tetxo qu eser guardado en el archivo de salida.

La mejor forma de aprender a utilizar el vi es utilizndolo por ejemplo modificando un archivo existente (sea
cuidadoso no edite o modifique un archivo que sea necesario, utilice un archivo de test con una copia de un
archivo. Por ejemplo haga lo siguiente
% vi test
Cuando Ud entra en el editor puede salir pasando primero al modo comando. Esta accin se realiza mediante
la tecla ESC el cursor bajar a la ltima lnea y pondr los ':' este prompt (:) indica que est en el modo
comando, por ejemplo para salir descartando todas las modificaciones es q! generalmente todos los comando
son la primera letra de la accin (quit en este caso) y en el caso de ! indica que sin confirmacin. Si se desean
salvar los cambios ser w (por write) y salvar los cambios y salir wq (por write & quit).
Modo Comando
El editor se inicia en el modo comando. Hay diferentes formas de ir al modo de inserccin pero siempre se
regresa a este modo con la tecla de ESC. Si no se est seguro en que modo est presione el ESC hasta que
oiga un beep, lo cual le indicar que est en modo comandos.
Los comandos bsicos de vi son:
:wq Salvar y Salir
:q!
Salir sin salvar:
a
Append: Modo insertar e la siguiente posicin del cursor
i
Insert: Modo insertar sobre la posicin del cursor
x
Borra caracter bajo el cursor
dw
Borra palabra
dd
Borra lnea
u
Deshacer (Undo)
Ctrl-F Pantalla sgte.
Ctrl-B Pantalla anterior
O
Inserta lnea en blanco
Secuencia de comandos bsicos
El vi utiliza el editor ex cuando trabaja en modo comandos y siempre es la ltima lnea de la pantalla con el
prompt : por donde se le indican los comandos al ex. Los comandos admiten repeticin que indicar cuantas
veces se ejecutar el comando. Por ejemplo dd borra una lnea pero 4dd borrar 4 lneas. La mayora de los
comando no producen salida por display de la accin, pero si cuando la accin es finalizada, por ejemplo
cunado ponga 11dd (borrar 11 lneas) el vi le dir '11 lines deleted'.
Movimientos dentro del archivo
Ud. debe estar en modo comando para moverse dentro del archivo. Generalmente las teclas de cursor
funcionan bien (pueden no funcionar si Ud. est conectado a travs de un emulador de terminal - desde un PC
por ejemplo - y no coincide la variable TERM de Unix con la que Ud. est emulando, solucin: cambie la
variable TERM con -en csh- setenv TERM vt100 -en sh- TERM=vt100 export TERM y en el emulador
seleccione como terminal vt100). Si Ud. est en modo insertar y presiona las teclas de cursor le insertar el
caracter que ellas representan. Presionando la tecla RETURN se mover a la siguiente lnea. La tabla
siguiente muestra los movimientos ms comunes:

Return Siguiente lnea


j
Siguiente lnea
k
Lnea previa
l
Siguiente caracter
h
Caracter anterior
Ctrl-F Pantalla siguiente
Ctrl-B Pantalla anterior
Ctrl-D Media pantalla siguiente
Ctrl-U Media pantalla anterior
[[
Inicio documento
]]
Fin documento
nG
Ir a lnea n
w
una palabra a la derecha
b
una palabra a la izquierda
{
fin prrafo
}
fin prrafo anterior
/string Busca string
Para ir a la lnea 10 introduzca 10G (si slo introduce G se mover hasta el final del archivo). Para
averiguaren que lnea est presione Ctrl-G. Las palabras, sentencias, y prrafos tienen especial significado
para el vi y existen comandos para moverse a travs de ellas. Una palabra es cualquier caracter delimitado por
blancos o puntuacin y tambin cada smbolo de puntuacin es una palabra. Sin embargo si Ud. utiliza la
maycula del comando de movimiento se saltar la puntuacin, por ejemplo B es lo mismo que b y mueve el
cursor una palabra hacia atrs pero si hay un punto b se parar aqui pero B no.
Una sentecia es un string con un punto final y dos espacios en blanco. Con ) y ( Ud. se mover hacia adelante
una sentencia o hacia atrs respectivamente.
Un prrafo es el que termina con dos Return.
Bsqueda de strings
Las bquedas se realizarn en modo comando y para iniciarla debe presionar /. Esto causar que el cursor
baje a la lnea inferior, indique el string a buscar finalizando con un Return. Si desea buscar en orden inverso
presione ? en vez de /.
Modo texto
Antes de ir al modo texto recordar que siempre se sale de l mediante un . La tabla siguiente muestra los
comando bsicos para pasar a modo texto.
a append inserta despus del caracter sobre el cual estamos
i insert antes de caracter sobre el que estamos
A append al final de la lnea actual
I insert antes del 1 caracter diferente de espacio en la lnea corriente

o abre una lnea en blanco abajo de la actual


O dem anterior pero sobre la actual
Correcciones
La nica forma de corregir un error en modo texto es hacer un backspace y reintroducir los caracteres.
Correcciones ms complejas deben ser realizadas desde el modo comandos. La tabla siguiente muestra los
comando que pueden ser utilizados:
x borra caracter
dw borra palabra
dd borra lnea
r reemplaza un caracter sobre el cursor
R reemplaza un string de caracteres (sobreescribe)
cw cambia una palabra
s sustituye un caracter por un string
. repite el ultimo cambio
Un comando interesante es el punto (.) el cual repite el ltimo cambio hecho en edicin. Este puede ser
utilizado para cambiar cada ocurrencia de un string con otro, por ejemplo: si introducimos el comando /feo
para buscar el string "feo". Entonces entre el comando cw e introduca "lindo" para reemplazar feo por lindo.
Presione para aceptar el cambio. Para encontrar la siguiente ocurrencia introduzca el comando n y luego .
para repretir el ltimo cambio.
Comandos ex
La flexibilidad del vi est en el editor ex. En particular operaciones de bsqueda global y reemplazo estn
soportadas por el ex. Siempre sabemos cuales son los comandos ex porque aparecer los : como prompt. Para
pasar al modo comandos del ex Ud debe introducir desde el modo comando del vi (no insertando) los dos
puntos (:). En este modo el cursor bajar a la ltima lnea del display y aceptar comando en modo ex. El
comando es ejecutado cuando Ud. presiona el Return. Con Ctrl-C el comando es anulado. La siguiente tabla
muestra alguno de los comandos bsico del ex:
:w
Escribe el archivo
:q
sale sin guardar cambios
:e nombre Edita archivo nombre
:sh
ejecuta un shell sin salir del editor
Movimientos dentro del ex
Sobre el ex puede ejecutar comando refirindose a las lneas del texto. Por ejemplo el punto (.) representa la
lnea actual, y el $ la ltima lnea. Por lo tanto se pueden combinar tal como .,$ lo cual significara desde la
lnea actual hasta hasta la ltima lnea en el archivo. Combinando este tipo de especificacin se pueden crear
comandos tales como :.+1,$d para borra cada lnea desde la actual hasta el fin del archivo. La palabra g puede
ser utilizado para realizar el tratamiento com global.

Bsqueda y reemplazo global


El siguiente ejemplo es una bsqueda global con reemplazo para mostrar las capacidades del vi.
Se desea buscar la cadena viejo y sustituirla por nuevo, desde el principio al final del texto:
:1,$s/viejo/nuevo/g
Se desea buscar en todo el archivo "feo" y reeemplazarlo por "lindo":
:g/feo/s//lindo/g
Si se desea utilizar caracteres especiales de debe emplear el \ (backslash). Por ejemplo para reemplazar todos
los $ en **:
:g/\$/s//**/g
El return tambin puede ser especificado introduciendo 'ControlV'.
Quick Reference
La siguiente tabla da una referencia rpida con lo que soporta el vi (generalmente el vi tiene los mismo
comandos en diferentes sistemas):
Obs: Los comandos comienzan por : y termina con return, preste atencin a la tecla de Maysculas porque los
comando difieren sin est apretada o no
Para empezar
vi file
vi -r file
vi + n file
vi + file
vi file1 ... filen
vi + /str file
Salvar y Salir
ZZ o :wq o :x
:w file
:w!
n,mw file
n,mw>> file
:q
:q!
Q
:e!
Comandos de status
:.=
:=

edita file
edita la ltima versin salvada de file (recupera)
edita y pone el cursor en la lnea n
dem pero a la ltima lnea
edita file1 a filen, despues de salvar file1, presione n para la siguiente
edita y sita el curso en la lnea que contiene str
salva y sale
salva en file, si no existe file salva en la actual
salva y no controla la proteccin de escritura
salva desde la lnea n a la m en file
aade desde n a m al final de file
sale (si hay cambios no lo ejcuta el comando)
sale (si hay cambios los descarta)
permite pasar al ex (:vi retorna)
reedit el archivo actual, descarta los cambios
imprime lnea actual
imprime n de lneas en el archivo

Ctrl-g
:l (ele)

imprime status del archivo


imprime los caracteres especiales de la lnea actual
Insertar

a
append
A
append despus del final de la lnea
i
insert
I
insert antes del cominezo de la lnea
o
inserta un lnea nueva (abajo)
O
inserta una lnea nueva (arriba)
Ctrl-V char
inserta el char (vlido para insertar caracteres de control)
:r file
lee file e inserta despus de la lnea actual
:nr file
dem pero inserta despus de la lnea n
Undoing
u
undo ltimo comando
U
Restaura la lnea al estado original
"np
Retrive el n-esimo delete (hasta 9 max)
n
repite el ltimo / o ? (bsqueda)
N
dem anterior pero en orden inverso repite la ltima (bsqueda)
,
dem anterior pero en orden inverso
.
repite el ltimo cambio de texto
Posicionamiento del cursor
{
Marca las secciones cuando est en la primera columna
[[
Hacia atras y principo de seccin
]]
hacia adelante y principo de seccin
Movimientos del cursor
k
arriba
j
abajo
h
izquierda
l (ele) o Space
derecha
woW
siguiente palabra (Mayscula ignora puntuacin)
boB
palabra previa
eoE
fin palabra
0o|
1 columna
$
ultimo caracter en la lnea
+ o Return
1 caracter de la lnea
1 caracter no blanco de la lnea
G
ltima lnea
G$
ltimo caracter
nG
linea n
(
comienzo de sentencia
)
cominezo de sgte sentencia
{
Comienzo de prrafo

Comienzo de prrafo sgte


Borrar

<- o Ctrl h
Ctrl w
Crtl x
nx
nX
D
ndw
Bsqueda
%
fchar
Fchar
tchar
Tchar
/str
?str
:set ic
:set noic
Copiar
nyy o nY
p
P

borra caracter en modo insertar


borra palabra en modo insertar
borra texto insertado en modo insertar
borra n caracteres incluyendo el de la posicin del cursor
borra n caracteres previos al cursor incluido
borra desde posicin actual al fin de lnea
borra n palabras
busca el comienzo de () [] {}
busca hacia adelante char
busca hacia atrs char
busca hacia delante linea actual
busca hacia atrs linea actual
busca string
busca string hacia atrs
ignore case
no ignore case
copia n lneas en el buffer desde la actual
print las lneas de buffer en la posicin del cursor
dem pero antes del cursor

You might also like