Está en la página 1de 5

Editor vi

Pgina 1

EDITOR VI
El editor vi es el editor por excelencia de UNIX. Es bastante potente y complicado de manejar a pleno rendimiento, debido a la gran
cantidad de opciones que tiene, pero es fcil dar los primeros pasos e ir avanzando poco a poco. Es difcil de utilizar al principio, pero puede
llegar a convertirse en el ms cmodo y rpido.
En UNIX existen otros editores ms potentes, con entornos de trabajo ms amigables, otros ms sencillos de manejar, pero el nico editor
que est en todas las versiones y se maneja igual es el vi.
La sintaxis del comando vi es, al igual que la de cualquier comando UNIX:
vi [opciones] archivo
Entre las opciones ms importantes se pueden destacar:
-r : Recupera la copia del archivo que existe en los directorios temporales. Es til en caso de que se haya apagado el terminal sin
haber salvado el texto.
-c : Ejecuta el comando, de vi, que se indica a continuacin. Es til para posicionarse en algn punto del archivo
En vi existen 3 modos de trabajo:
Modo comando: cada tecla tiene un significado, y se puede desplazar el cursor, copiar, pegar, mover, borrar, etc. Hay que tener
mucho cuidado, pues un comando en minsculas o en maysculas tienen efectos muy diferentes.
Modo texto: se emplea para aadir o modificar el texto del documento.
Modo ex: insercin de comandos del editor de lneas ex. Se emplea para cambios masivos en el documento.

En las pginas siguientes se detallan los comandos ms importantes de vi clasificados segn el modo en que se ejecutan y las tareas que
realizan.
vi es independiente del tipo de terminal, pero la variable de ambiente TERM debe estar fijada correctamente. Si no se conoce o no existe,
en la base de datos de terminales del sistema, el tipo exacto de terminal con el que se est trabajando, se puede usar el tipo vt100 o el
ansi (dan buenos resultados en la mayora de los terminales).
Para modificar el tipo de terminal se deber teclear:
TERM=[tipo de terminal];export TERM
o directamente:
export TERM=[tipo de terminal]
Con algunos comandos, especialmente more y a veces vi, el terminal o el emulador que se est usando pueden no responder bien, que no
aparezcan los cambios que se realizan correctamente en la pantalla. En estos casos, puede usarse Ctrl-l para refrescar la pantalla.
Un usuario puede generar bajo su directorio $HOME un archivo llamado .exrc, en el que podr adaptar el entorno del editor vi a su gusto.
En este archivo se pueden incluir:

http://club.telepolis.com/jagar1/Unix/Vi.htm

29/05/2006 15:04:28

Editor vi

Pgina 2

Opciones set
set [opcion[=valor]]
Abreviaturas ab
ab [abr] [cadena]
Macros map.
map [Key|#n] [accin]
donde:
Key : expresa una letra especial (no utilizada en vi). Por ejemplo v, V, q, K, Ctrl-A, etc. Las teclas correspondientes a las flechas se
pueden definir como macros si es que no se encuentran definidas por defecto.
n : expresa un nmero
accin : es un comando de vi, teniendo en cuenta que antes de teclear un Escape o Return, o cualquier carcter de control hay que
teclear Ctrl-v.
Tanto las opciones, como las abreviaturas y macros se pueden definir en modo ex para la edicin en curso, pero solo tendrn valor durante
la edicin actual, no siendo vlidas para las siguientes llamadas al comando vi. Por ello, para que afecte a cualquier llamada del comando
vi, ser necesario insertarlas en el archivo .exrc.

MODO TEXTO

Acceso a modo texto


i

Insertar antes del cursor.

Insertar al principio de la lnea.

Aadir despus del cursor.

Aadir al final de la lnea.

Abrir lnea debajo de la actual.

Abrir lnea encima de la actual.

Sobreescribir (cambiar) texto.

Sobreescribir el carcter sobre el que est el


cursor.

Reemplaza caracteres.

cw

Reemplaza palabras.

C o c$

Reemplaza hasta el fin de lnea.

c0

Reemplaza desde el comienzo de lnea.

Los comandos de reemplazo admiten multiplicadores que consisten en un nmero antecediendo al comando. Al dar un comando de
reemplazo el editor coloca un smbolo $ en donde termina el pedido de reemplazo. El usuario sobrescribe normalmente hasta donde
necesite, y sale con la tecla ESC. Estos comandos admiten multiplicadores, por ejemplo 3cw abre un rea de reemplazo para 3 palabras.

Otros
BS (Back Space)

Borrar carcter hacia la izquierda.

ESC

Salir de Modo Texto y pasar a modo


comando.

MODO COMANDO
Algunos de estos comandos admiten multiplicadores, que consisten en un nmero antecediendo al comando.

Movimiento del cursor y Control de pantalla


flechas

http://club.telepolis.com/jagar1/Unix/Vi.htm

Mover en distintas direcciones.

29/05/2006 15:04:28

Editor vi

Pgina 3
h BS (Back
Space)
l SP (Espacio)
k -

Una posicin hacia la izquierda.

j +

Una lnea hacia abajo.

Fin de lnea.

0 (Cero)

Principio de lnea.

1G

Comienzo del archivo.

Fin del archivo.

18G

Lnea nmero 18.

Ctrl-G

Mostrar nmero de lnea actual.

Comienzo de la palabra siguiente.

Fin de la palabra siguiente.

Fin de la palabra siguiente antes de espacio.

Principio de la palabra anterior.

Primera palabra de la lnea.

Hasta el parntesis que aparea.

Parte superior de la pantalla.

Parte inferior de la pantalla.

Al medio de la pantalla.

23|

Cursor a la columna 23.

Ctrl-f

Una pantalla adelante.

Ctrl-b

Una pantalla atrs.

Ctrl-l

Refrescar la pantalla.

Ctrl-d

Media pantalla adelante.

Ctrl-u

Media pantalla atrs.

Una posicin hacia la derecha.


Una lnea hacia arriba.

Bsqueda
/str

Buscar hacia adelante cadena de caracteres 'str'.

?str

Buscar hacia atrs cadena de caracteres 'str'.

Buscar siguiente (si se us /) o anterior (si se


us ?).

Buscar anterior (si se us /) o siguiente (si se


us ?).

fc

Buscar el siguiente carcter 'c' en la lnea.

Fc

Buscar el anterior carcter 'c' en la lnea.

tc

Ir al carcter anterior al siguiente 'c'.

Tc

Ir al carcter posterior al precedente 'c'.

Repetir el ltimo comando f, F, t, o T.

ltimo comando f, F, t, o T en sentido inverso.

La cadena a buscar en / o ? puede ser una expresin regular.


La accin de f, F, t y T alcanza slo a la lnea actual; si el carcter buscado no est en esa lnea el cursor no se mueve.

Borrar, Copiar y Pegar


x

Borrar carcter bajo el cursor.

dd

Borrar lnea, queda guardada.

Borrar desde cursor a fin de lnea.

dw

Borrar desde cursor a fin de palabra.

d$

Borrar desde cursor a fin de lnea.

d0

Borrar desde cursor a principio de lnea.

d)

Borra hasta el final del prrafo.

Y o yy

Copiar lnea.

Pegar antes del cursor.

http://club.telepolis.com/jagar1/Unix/Vi.htm

29/05/2006 15:04:28

Editor vi

Pgina 4
p

Pegar despus del cursor.

yw

Copiar palabra.

y$

Copiar de cursor a fin de lnea.

"ayy o "aY

Copiar lnea en buffer llamado 'a'.

'a' "ayw

Copiar palabra en buffer llamado 'a'.

"ap

Pegar desde buffer 'a', a la derecha del cursor.

"aP

Pegar desde buffer 'a', a la izquierda del cursor.

"bdd

Borrar lnea y guardar en buffer 'b'.

"bdw

Borrar palabra y guardar en buffer 'b'.

Unir la lnea actual y la siguiente (suprimir el retorno de carro)


.

Otros
ZZ

Grabar cambios si los hubo y salir.

Deshacer ltima accin.

Deshacer todos los cambios en una lnea desde que se posicion el cursor en
ella.

Repetir el ltimo comando.

MODO EX O ULTIMA LINEA

Generales
:q

Salir si no hubo cambios.

:q!

Salir sin guardar cambios.

:w

Guardar cambios.

:w arch1

Guardar cambios en archivo arch1.

:wq

Guardar cambios y salir.

:r arch2

Insertar un archivo.

:e arch2

Editar un nuevo archivo.

:e! arch2

Idem sin salvar anterior.

:r! comando

Insertar salida de comando.

:shell

Salir al shell (vuelve con exit).

:.=

Muestra el nmero de lnea en que se halla en


cursor.

Mover
:1

Mueve a lnea 1.

:15

Mueve a lnea 15.

:$

Mueve a ltima
lnea.

Opciones, abreviaturas y macros


:set

Cambio de opciones.

:set nu

Mostrar nmeros de lnea.

:set nonu

No mostrar nmeros de lnea .

:set showmode

Mostrar modo actual de vi.

http://club.telepolis.com/jagar1/Unix/Vi.htm

29/05/2006 15:04:28

Editor vi

Pgina 5
:set noshowmode

No mostrar modo actual de vi.

:ab [abr] [cadena]

Cada vez que se teclee la cadena abr, sta se expandir escribiendo


cadena.

:ab

Muestra las abreviaturas creadas.

:una [abr]

Elimina la abreviatura abr.

:map [c] [accion]

Genera la macro c que ejecutar la accin indicada.

:map

Muestra las macros definidas.

Otros
:[desde],[hasta] s/[buscar]/
[reemplazar]/

Reemplaza todas la primera ocurrencia de la cadena [buscar], en cada lnea, por la cadena
[reemplazar] entre las lneas [desde] y [hasta] del archivo.

:[desde],[hasta] s/[buscar]/
[reemplazar]/g

Reemplaza todas las ocurrencias de la cadena [buscar] por la cadena [reemplazar] entre las
lneas [desde] y [hasta] del archivo.

:[desde],[hasta] d

Borra las lneas comprendidas entre las lneas [desde] y [hasta].

Ejemplos:
:1,$s/Martes/martes/g

Cambia Martes por martes en todo el archivo.

:.,5s/ayuda/&ndo/g

Cambia ayuda por ayudando desde lnea actual hasta la 5 lnea.

:.,$ d

Elimina todas las lneas desde la lnea actual al final del archivo.

:ab pp Hola Pepe

Cada vez que se teclee "pp " se expandir en "Hola Pepe".

http://club.telepolis.com/jagar1/Unix/Vi.htm

29/05/2006 15:04:28

También podría gustarte