You are on page 1of 6

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 :q! a i x dw dd u Ctrl-F Ctrl-B O Salvar y Salir Salir sin salvar: Append: Modo insertar e la siguiente posicin del cursor Insert: Modo insertar sobre la posicin del cursor Borra caracter bajo el cursor Borra palabra Borra lnea Deshacer (Undo) Pantalla sgte. Pantalla anterior 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 shTERM=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 j k l h Ctrl-F Ctrl-B Ctrl-D Ctrl-U [[ ]] nG w b { } /string Siguiente lnea Siguiente lnea Lnea previa Siguiente caracter Caracter anterior Pantalla siguiente Pantalla anterior Media pantalla siguiente Media pantalla anterior Inicio documento Fin documento Ir a lnea n una palabra a la derecha una palabra a la izquierda fin prrafo fin prrafo anterior 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 i A I append inserta despus del caracter sobre el cual estamos insert antes de caracter sobre el que estamos append al final de la lnea actual insert antes del 1 caracter diferente de espacio en la lnea corriente

o O

abre una lnea en blanco abajo de la actual 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 dw dd r R cw s . borra caracter borra palabra borra lnea reemplaza un caracter sobre el cursor reemplaza un string de caracteres (sobreescribe) cambia una palabra 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 edita file vi -r file edita la ltima versin salvada de file (recupera) vi + n file edita y pone el cursor en la lnea n vi + file dem pero a la ltima lnea vi file1 ... filen edita file1 a filen, despues de salvar file1, presione n para la siguiente vi + /str file edita y sita el curso en la lnea que contiene str Salvar y Salir ZZ o :wq o :x salva y sale :w file salva en file, si no existe file salva en la actual :w! salva y no controla la proteccin de escritura n,mw file salva desde la lnea n a la m en file n,mw>> file aade desde n a m al final de file :q sale (si hay cambios no lo ejcuta el comando) :q! sale (si hay cambios los descarta) Q permite pasar al ex (:vi retorna) :e! reedit el archivo actual, descarta los cambios Comandos de status :.= := Ctrl-g :l (ele) Insertar a A i append append despus del final de la lnea insert imprime lnea actual imprime n de lneas en el archivo imprime status del archivo imprime los caracteres especiales de la lnea actual

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 U "np n N , . undo ltimo comando Restaura la lnea al estado original Retrive el n-esimo delete (hasta 9 max) repite el ltimo / o ? (bsqueda) 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 w o W siguiente palabra (Mayscula ignora puntuacin) b o B palabra previa e o E 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 borra caracter en modo insertar Ctrl w borra palabra en modo insertar Crtl x borra texto insertado en modo insertar nx borra n caracteres incluyendo el de la posicin del cursor nX borra n caracteres previos al cursor incluido D borra desde posicin actual al fin de lnea ndw borra n palabras Bsqueda

% busca el comienzo de () [] {} fchar busca hacia adelante char Fchar busca hacia atrs char tchar busca hacia delante linea actual Tchar busca hacia atrs linea actual /str busca string ?str busca string hacia atrs :set ic ignore case :set noic no ignore case Copiar nyy o nY copia n lneas en el buffer desde la actual p print las lneas de buffer en la posicin del cursor P dem pero antes del cursor

You might also like