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 I a A o O R r c cw C o c$ c0 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. Reemplaza palabras. Reemplaza hasta el fin de lnea. 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) ESC Borrar carcter hacia la izquierda. 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 Mover en distintas direcciones.

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

29/05/2006 15:04:28

Editor vi
h BS (Back Space) l SP (Espacio) k j + $ 0 (Cero) 1G G 18G Ctrl-G w e E b ^ % H L M 23| Ctrl-f Ctrl-b Ctrl-l Ctrl-d Ctrl-u Una posicin hacia la izquierda. Una posicin hacia la derecha. Una lnea hacia arriba. Una lnea hacia abajo. Fin de lnea. Principio de lnea. Comienzo del archivo. Fin del archivo. Lnea nmero 18. 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. Cursor a la columna 23. Una pantalla adelante. Una pantalla atrs. Refrescar la pantalla. Media pantalla adelante. Media pantalla atrs.

Pgina 3

Bsqueda /str ?str n N fc Fc tc Tc ; , Buscar hacia adelante cadena de caracteres '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 ?). Buscar el siguiente carcter 'c' en la lnea. Buscar el anterior carcter 'c' en la lnea. Ir al carcter anterior al siguiente 'c'. 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 dd D dw d$ d0 d) Y o yy P Borrar carcter bajo el cursor. Borrar lnea, queda guardada. Borrar desde cursor a fin de lnea. Borrar desde cursor a fin de palabra. Borrar desde cursor a fin de lnea. Borrar desde cursor a principio de lnea. Borra hasta el final del prrafo. Copiar lnea. Pegar antes del cursor.

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

29/05/2006 15:04:28

Editor vi
p yw y$ "ayy o "aY 'a' "ayw "ap "aP "bdd "bdw J Pegar despus del cursor. Copiar palabra. Copiar de cursor a fin de lnea. Copiar lnea en buffer llamado 'a'. Copiar palabra en buffer llamado 'a'. Pegar desde buffer 'a', a la derecha del cursor. Pegar desde buffer 'a', a la izquierda del cursor. Borrar lnea y guardar en buffer 'b'. Borrar palabra y guardar en buffer 'b'. Unir la lnea actual y la siguiente (suprimir el retorno de carro) .

Pgina 4

Otros ZZ u U . 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 :q! :w :w arch1 :wq :r arch2 :e arch2 :e! arch2 :r! comando :shell :.= Salir si no hubo cambios. Salir sin guardar cambios. Guardar cambios. Guardar cambios en archivo arch1. Guardar cambios y salir. Insertar un archivo. Editar un nuevo archivo. Idem sin salvar anterior. Insertar salida de comando. Salir al shell (vuelve con exit). Muestra el nmero de lnea en que se halla en cursor.

Mover :1 :15 :$ Mueve a lnea 1. Mueve a lnea 15. Mueve a ltima lnea.

Opciones, abreviaturas y macros :set :set nu :set nonu :set showmode Cambio de opciones. Mostrar nmeros de lnea. No mostrar nmeros de lnea . Mostrar modo actual de vi.

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

29/05/2006 15:04:28

Editor vi
:set noshowmode :ab [abr] [cadena] :ab :una [abr] :map [c] [accion] :map No mostrar modo actual de vi. Cada vez que se teclee la cadena abr, sta se expandir escribiendo cadena. Muestra las abreviaturas creadas. Elimina la abreviatura abr. Genera la macro c que ejecutar la accin indicada. Muestra las macros definidas.

Pgina 5

Otros :[desde],[hasta] s/[buscar]/ [reemplazar]/ :[desde],[hasta] s/[buscar]/ [reemplazar]/g :[desde],[hasta] d Reemplaza todas la primera ocurrencia de la cadena [buscar], en cada lnea, por la cadena [reemplazar] entre las lneas [desde] y [hasta] del archivo. Reemplaza todas las ocurrencias de la cadena [buscar] por la cadena [reemplazar] entre las lneas [desde] y [hasta] del archivo. Borra las lneas comprendidas entre las lneas [desde] y [hasta].

Ejemplos: :1,$s/Martes/martes/g :.,5s/ayuda/&ndo/g :.,$ d :ab pp Hola Pepe Cambia Martes por martes en todo el archivo. Cambia ayuda por ayudando desde lnea actual hasta la 5 lnea. Elimina todas las lneas desde la lnea actual al final del archivo. 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