P. 1
Manual de Vi

Manual de Vi

5.0

|Views: 362|Likes:
Published by hsaave
Practico manual del editor de ficheros en Linux.
Practico manual del editor de ficheros en Linux.

More info:

Published by: hsaave on Jul 21, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/09/2010

pdf

text

original

Manual de vi

:

http://www.unav.es/cti/curso-c/vi.html

Manual de vi:
Introducción

Modo Comando.

Secuencia de comandos básicos

Comados básicos

Movimientos dentro del archivo

Búsqueda de strings

Modo Edición

Correcciones

Comandos ex

Búsqueda y reemplazo global

Quick Reference

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

1 de 7

06/12/2008 04:23 p.m.

Manual de vi:

http://www.unav.es/cti/curso-c/vi.html

La mejor forma de aprender a utilizar el vi es utilizándolo 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 acción se realiza mediante la tecla ESC el cursor bajará a la última línea 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 acción (quit en este caso) y en el caso de ! indica que sin confirmación. 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 insercción 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 básicos de vi son: :wq Salvar y Salir :q! Salir sin salvar: a Append: Modo insertar e la siguiente posición del cursor i Insert: Modo insertar sobre la posición del cursor x Borra caracter bajo el cursor dw Borra palabra dd Borra línea u Deshacer (Undo) Ctrl-F Pantalla sgte. Ctrl-B Pantalla anterior O Inserta línea en blanco Secuencia de comandos básicos El vi utiliza el editor ex cuando trabaja en modo comandos y siempre es la última línea de la pantalla con el prompt : por donde se le indican los comandos al ex. Los comandos admiten repetición que indicará cuantas veces se ejecutará el comando. Por ejemplo dd borra una línea pero 4dd borrará 4 líneas. La mayoría de los comando no producen salida por display de la acción, pero si cuando la acción es finalizada, por ejemplo cunado ponga 11dd (borrar 11 líneas) 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 través de un emulador de terminal - desde un PC por ejemplo - y no coincide la variable TERM de Unix con la que Ud. está emulando, solución: 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 línea. La tabla siguiente muestra los movimientos más comunes:

2 de 7

06/12/2008 04:23 p.m.

Manual de vi:

http://www.unav.es/cti/curso-c/vi.html

Return Siguiente línea j Siguiente línea k Línea 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 línea n w una palabra a la derecha b una palabra a la izquierda { fin párrafo } fin párrafo anterior /string Busca string Para ir a la línea 10 introduzca 10G (si sólo introduce G se moverá hasta el final del archivo). Para averiguaren que línea está presione Ctrl-G. Las palabras, sentencias, y párrafos tienen especial significado para el vi y existen comandos para moverse a través de ellas. Una palabra es cualquier caracter delimitado por blancos o puntuación y también cada símbolo de puntuación es una palabra. Sin embargo si Ud. utiliza la mayúcula del comando de movimiento se saltará la puntuación, por ejemplo B es lo mismo que b y mueve el cursor una palabra hacia atrás 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 atrás respectivamente. Un párrafo es el que termina con dos Return. Búsqueda de strings Las búquedas se realizarán en modo comando y para iniciarla debe presionar /. Esto causará que el cursor baje a la línea 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 básicos para pasar a modo texto. a append inserta después del caracter sobre el cual estamos i insert antes de caracter sobre el que estamos A append al final de la línea actual I insert antes del 1º caracter diferente de espacio en la línea corriente

3 de 7

06/12/2008 04:23 p.m.

Manual de vi:

http://www.unav.es/cti/curso-c/vi.html

o abre una línea 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 más 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 línea 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 edición. 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 búsqueda global y reemplazo están 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 línea 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 básico 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 refiriéndose a las líneas del texto. Por ejemplo el punto (.) representa la línea actual, y el $ la última línea. Por lo tanto se pueden combinar tal como .,$ lo cual significaría desde la línea actual hasta hasta la última línea en el archivo. Combinando este tipo de especificación se pueden crear comandos tales como :.+1,$d para borra cada línea desde la actual hasta el fin del archivo. La palabra g puede ser utilizado para realizar el tratamiento com global.

4 de 7

06/12/2008 04:23 p.m.

Manual de vi:

http://www.unav.es/cti/curso-c/vi.html

Búsqueda y reemplazo global El siguiente ejemplo es una búsqueda 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 también puede ser especificado introduciendo 'ControlV'. Quick Reference La siguiente tabla da una referencia rápida 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 atención a la tecla de Mayúsculas 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 versión salvada de file (recupera) edita y pone el cursor en la línea n ídem pero a la última línea edita file1 a filen, despues de salvar file1, presione n para la siguiente edita y sitúa el curso en la línea que contiene str salva y sale salva en file, si no existe file salva en la actual salva y no controla la protección de escritura salva desde la línea n a la m en file añade 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 línea actual imprime nº de líneas en el archivo

5 de 7

06/12/2008 04:23 p.m.

Manual de vi:

http://www.unav.es/cti/curso-c/vi.html

Ctrl-g :l (ele) Insertar

imprime status del archivo imprime los caracteres especiales de la línea actual

a append A append después del final de la línea i insert I insert antes del cominezo de la línea o inserta un línea nueva (abajo) O inserta una línea nueva (arriba) Ctrl-V char inserta el char (válido para insertar caracteres de control) :r file lee file e inserta después de la línea actual :nr file ídem pero inserta después de la línea n Undoing u undo último comando U Restaura la línea al estado original "np Retrive el n-esimo delete (hasta 9 max) n repite el último / o ? (búsqueda) N Ídem anterior pero en orden inverso repite la última (bísqueda) , í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 sección ]] hacia adelante y principo de sección Movimientos del cursor k arriba j abajo h izquierda l (ele) o Space derecha woW siguiente palabra (Mayúscula ignora puntuación) boB palabra previa eoE fin palabra 0o| 1º columna $ ultimo caracter en la línea + o Return 1º caracter de la línea 1º caracter no blanco de la línea G última línea G$ último caracter nG linea n ( comienzo de sentencia ) cominezo de sgte sentencia { Comienzo de párrafo

6 de 7

06/12/2008 04:23 p.m.

Manual de vi:

http://www.unav.es/cti/curso-c/vi.html

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

Comienzo de párrafo sgte borra caracter en modo insertar borra palabra en modo insertar borra texto insertado en modo insertar borra n caracteres incluyendo el de la posición del cursor borra n caracteres previos al cursor incluido borra desde posición actual al fin de línea borra n palabras busca el comienzo de () [] {} busca hacia adelante char busca hacia atrás char busca hacia delante linea actual busca hacia atrás linea actual busca string busca string hacia atrás ignore case no ignore case copia n líneas en el buffer desde la actual print las líneas de buffer en la posición del cursor ídem pero antes del cursor

7 de 7

06/12/2008 04:23 p.m.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->