You are on page 1of 8

Manual de vi

Introduccin: El vi es el editor estndar de Unix. Este trabaja en modo 'full screen' . El vi tiene dos modos de trabajo: 1. Comandos e inserccin. En el modo comandos todo lo que el usuario introduce es interpretado como un comando; 2. En el modo inserccin lo que el usuario introduce es texto que ser 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! Salvar y Salir Salir sin salvar: Append: Modo insertar e la siguiente posicin del a 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 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 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 insert antes del 1 caracter diferente de espacio en la lnea I 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 dw dd r borra caracter borra palabra borra lnea reemplaza un caracter sobre el cursor reemplaza un string de caracteres R (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.

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 :.= := Ctrl-g :l (ele) Insertar a A i I o O Ctrl-V char :r file :nr file 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 imprime status del archivo imprime los caracteres especiales de la lnea actual append append despus del final de la lnea insert insert antes del cominezo de la lnea inserta un lnea nueva (abajo) inserta una lnea nueva (arriba) inserta el char (vlido para insertar caracteres de control) lee file e inserta despus de la lnea actual dem pero inserta despus de la lnea n

Undoing u U "np n N , . Posicionamiento del cursor { [[ ]] Movimientos del cursor k j h l (ele) o Space woW boB eoE 0o| $ + o Return G G$ nG ( ) { } Borrar <- o Ctrl h Ctrl w Crtl x nx nX D ndw

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 Marca las secciones cuando est en la primera columna Hacia atras y principo de seccin hacia adelante y principo de seccin arriba abajo izquierda derecha siguiente palabra (Mayscula ignora puntuacin) palabra previa fin palabra 1 columna ultimo caracter en la lnea 1 caracter de la lnea 1 caracter no blanco de la lnea ltima lnea ltimo caracter linea n comienzo de sentencia cominezo de sgte sentencia Comienzo de prrafo Comienzo de prrafo sgte 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

Bsqueda % fchar Fchar tchar Tchar /str ?str :set ic :set noic Copiar nyy o nY p P

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