Comandos VI

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

Aprendiendo vi - el mtodo de la Hoja de Trucos

Contenido: 1. Empezando Introduccin sta guia te ensear a usar vi, un potente editor visual. Utilizando un mtodo especial basado en una hoja de trucos, este tutorial se ha escrito para hacer de ti un buen usuario de vi sin que tengas que perder mucho el tiempo. En este tutorial, aprenders como moverte, editar texto, usar el modo insertar, copiar y pegar texto as como usar extensiones tiles de vim como el modo visual y la edicin multiventana. Si desconoces o no te sientes cmodo usando vi, quizs quieras leer este tutorial y alcanzar la velocidad de la luz con uno de los ms populares y poderosos editores visuales para Linux/UNIX Sobre esta gua... Hay una caracterstica de vi que hace difcil aprender su funcionamiento... vi tiene muchos comandos. Para usar vi de una forma efectiva, vas a tener que memorizar unos cuantos. sto puede llevarte tiempo, y uno de los objetivos de este tutorial es no quitarte demasiado tiempo. As que, desde el principio, tengo un reto -- como lo hago para ayudarte a memorizar un montn de comandos en poco tiempo? Para superar el reto, conforme vayamos avanzando en este tutorial, vamos a ir haciendo gradualmente una hoja de trucos para vi. Esta hoja va a contener todos los comandos vi importantes. Una vez hayas completado este tutorial, podrs acudir a tu hoja de trucos si te has olvidado de un comando en particular. Conforme pase el tiempo, irs memorizando los comandos, y cada vez dependers menos de la hoja. Vas a aprender a usar vi de la forma ms rpida nunca conocida! El proceso de aprendizaje En sta guia voy a usar varias tcnicas para ayudarte a aprender. Primero, voy a describirte como funcionan ciertos comandos en particular, como era de esperar. Despus, voy a pedirte que pruebes esos comandos directamente en vi (para que practiques), entonces te dir que apuntes esos comandos en tu hoja de trucos (para que puedas consultarlo ms tarde). Si quieres aprender vi rpidamente, es muy importante que sigas todos esos pasos. Probar un comando y transcribirlo despus a tu hoja de trucos te ayudar a memorizar ese comando. Introduciendo a vim Existen muchas versiones de vi, yo os voy a ensear como usar una versin de vi llamada vim. vim es muy popular y tiene un montn de extensiones que hacen a vi mucho ms ameno (si en algn momento, enseo un comando especfico de vim, lo indicar.) Si quieres instalar vim, puedes obtenerlo de www.vim.org. Adems de una linea de comandos vi mejorada, vim tambin viene con gvim, un editor amigable en modo grfico que puede ser configurado para usar las excelentes libreras para GUIs GTK+. A continuacin puedes ver una captura de pantalla de gvim en mi sistema: Ilustracin 1.1: Captura de GVIM

Si eres un novato, prueba de ejecutar gvim en tu sistema. Usar vi desde un GUI puede hacer la vida ms fcil a los principiantes. 2. Primeros pasos Escoje un archivo Antes de usar vi para editar archivos, necesitas saber como usar vi para moverte por un archivo. vi tiene muchos comandos de desplazamiento, y vamos a ver unos cuantos de ellos. Para esta parte del tutorial, busca un archivo de texto no importante y brelo en vi escribiendo: Listado de Cdigo 2.1: Cargar un archivo en vi
$ vi myfile.txt

Si tienes instalado vim, escribe vim myfile.txt. Si prefieres usar gvim, teclea gvim myfile.txt. myfile.txt debe ser el nombre de un archivo de texto en tu sistema. Dentro de vi Despus de que vi cargue, deberas ver una parte del archivo de texto que cargaste en tu pantalla. Felicidades -- ests en vi! A diferencia de muchos otros editores, cuando vi arranca, est en un modo especial llamado modo comando. Esto significa que si presionas l en el teclado, en vez de introducir una l en la posicin actual del cursor, el cursor se va a mover un carcter a la derecha. En el modo comando, los caracteres en tu teclado se usan para enviar comandos a vi, ms que para introducir caracteres literales en el texto. Uno de los tipos de comando ms esenciales son los comandos de movimiento; vamos a echarle un vistazo a alguno. 3. Movindote Movindote en vi, primera parte Cuando ests en modo comando, puedes usar las teclas h,j,k y l para mover el cursor izquierda, abajo, arriba y derecha respectivamente. Si estas usando una versin moderna de vi, tambin puedes usar las teclas de cursor. Las teclas h,j,k y l son prcticas porque, una vez te hayas acostumbrado a ellas, sers capaz de moverte por el archivo sin tener que mover tus dedos de la misma linea del teclado. Intenta usar h,j,k y l y las teclas de cursor para moverte por el archivo de texto. Intenta ahora apretar h hasta llegar al principio de una lnea. Observa que vi no te sita a la cola de la lnea anterior presionando h. De la misma forma, no puedes situarte al principio de la siguiente linea llegando al final de la linea actual presionando l. Movindote en vi, segunda parte vi posee atajos especiales para ir al principio o al final de la linea actual. Puedes usar 0 (cero) para saltar al primer carcter de una linea, y $ para saltar al ltimo carcter. Prubalos y observa como funcionan. La gran cantidad de comandos de movimiento que posee vi lo convierten en un gran "pager" (como los comandos more o less.) Usar vi como pager tambin te ayudar a aprender todos los comandos de movimiento ms rpidamente. Tambin puedes usar <CTR>F y <CTR>B para moverte una pgina adelante o atrs. Las versiones modernas de vi (como vim) permiten tambin usar las teclas PGUP y PGDOWN para este fin. Movindote entre palabras, parte 1 vi tambin te permite moverte una palabra a la derecha o a la izquierda. Para situar el cursor en el

primer carcter de la siguiente palabra, pulsa w. Para moverte al ltimo carcter de la siguiente palabra, pulsa e. Para moverte al primer carcter de la palabra anterior, pulsa b. Juega con esto. Movindote entre palabras, parte 2 Despus de jugar un poco con los comandos de movimiento entre palabras, te habrs dado cuenta de que vi considera palabras tipo foo-bar-oni, como cinco palabras separadas! sto es as por defecto: vi delimita las palabras por espacios o signos de puntuacin. foo-bar-oni es, por lo tanto, considerada como cinco palabras: foo, -, bar, - y oni. A veces, este comportamiento es el que queremos. Otras no. Afortunadamente, vi tambin entiende el concepto de "palabra grande". vi delimita las "palabras grandes" mediante espacios o saltos de linea solamente. sto significa que foo-bar-oni es considerada como cinco palabras vi, y a su vez, se considera una nica "palabra grande" vi. Movindote entre palabras, parte 3 Para saltar hacia la siguiente "palabra grande" o hacia la anterior, usa los comandos de movimiento entre palabras en maysculas. Usa W para saltar hacia el primer carcter de la siguiente "palabra grande", E para saltar al ltimo carcter de la siguiente "palabra grande", y B para saltar al primer carcter de la "palabra grande" anterior. Prueba todos stos comandos y compara los resultados de los comandos de movimiento entre palabras con los de movimiento entre "palabras grandes" hasta que entiendas las diferencias. Movimientos mayores Nos quedan pocos comandos por ver antes de empezar a ponerlos juntos en nuestra hoja de trucos... Puedes usar los caracteres ( y ) para moverte hacia el principio de la siguiente o anterior frase. Tambin puedes usar { o } para saltar al principio del prrafo actual o al del siguiente. Prubalo. 4. Saliendo Ya hemos descubierto los comandos bsicos de movimiento, pero todava hay otro montn de comandos que necesitas saber. Escribiendo :q saldrs de vi. Si no funciona, seguramente se deber a que, de alguna forma, has modificado el archivo accidentalmente. Para decirle a vi que queremos salir y descartar todos los cambios, escribiremos :q!. En estos momentos deberas estar en la lnea de comandos. En vi, se conoce a cualquier comando que empiece por : como comando ex-mode. sto es as porque vi tiene un editor no-visual integrado llamado ex. Puede usarse de una forma muy parecida a sed para hacer operaciones de modificacin desde linea. Adems, puede usarse para salir, como ya hemos visto. Si alguna vez presionas la tecla Q estando en modo comando, sers llevado al modo ex. Si te ocurre esto alguna vez, te enfrentars cara a cara con un prompt :, apretar enter desplazar la pantalla entera hacia arriba. Para volver al modo normal de vi, simplemente teclea vi y pulsa enter. 5. La Hoja de Trucos El principio de la hoja de trucos Hemos visto un montn de comandos, y ha llegado el momento de pasarlos a nuestra hoja de trucos. Para la hoja de trucos necesitars una hoja tipo folio US o A4 (piensa que vamos a poner una gran cantidad de informacin en ella!) A continuacin puedes ver una foto de mi hoja de trucos despus de haber transcrito todos los comandos que hemos cubierto hasta ahora. Intenta imitar mi diseo si es posible de forma que podamos poner todo en una sola hoja. Ilustracin 5.1: Hoja de trucos

vi miscelneo Sigamos con nuestro aprendizaje rpido de comandos. En modo comando, puedes saltar a una linea en concreto tecleando G. Para saltar a la primera linea de un fichero, teclea 1G. Observa que G est en maysculas. Si quieres saltar a la siguiente aparicin de una cadena de texto en particular, teclea /<regexp> y presiona enter. Substituye <regexp> por la expresin regular que ests buscando. Si no sabes como usar expresiones regulares, no te preocupes -- escribir /foo te llevar a la siguiente ocurrencia de foo. Slo tendrs que tener cuidado cuando necesites referenciar literalmente los caracteres ^, ., $ o \. Para estos caracteres debers poner una contra barra (\) como prefijo, y listo. Por ejemplo, /foo\.gif buscar la siguiente ocurrencia de "foo.gif". Para repetir la bsqueda hacia adelante, presiona n. Para repetir la bsqueda hacia atrs, teclea N. Como siempre, prueba estos comandos en tu propio editor vi. Tambin puedes teclear // para repetir la ltima bsqueda. 6. Guardando y Editando Guardar y guardar como... Hemos aprendido como usar el comando ex :q para salir de vi. Si quieres salvar los cambios, teclea :w. Si lo que quieres es guardar los cambios en otro archivo, escribe :w nombrearchivo.txt para guardarlo como nombrearchivo.txt. Si quieres guardar y salir, teclea :x o :wq. En vim (al igual que en otros editores vi avanzados, como elvis), puedes tener mltiples buffers abiertos a la vez. Para abrir un archivo en un una ventana nueva, escribe :sp filename.txt. filename.txt aparecer abierto para edicin en una nueva ventana dividida. Para cambiar de una ventana a la otra, teclea <CTR>w<CTR>w (control-w dos veces). Cualquier comando :q, :q!, :w y :x que uses solo se aplicar a la ventana actualmente activa.

Edicin simple Y lleg el momento de comenzar a aprender algunos de los comandos bsicos de edicin. Los comandos que vamos a cubrir en esta seccin se consideran simples porque te mantienen en modo comando. Los comandos "complejos" te ponen automticamente en modo insertar -- un modo que te permite entrar datos directamente desde el teclado. Lo veremos en breve. Por el momento, sitate por encima de algn carcter y presiona x varias veces. Vers que x elimina el carcter situado justo debajo del cursor. Ahora, muvete al medio de un prrafo dentro de tu archivo de texto, y pulsa J (en maysculas). Vers que el comando J indica a vi que junte la siguiente linea con el final de la linea actual. Ahora, situate encima de un carcter y presiona r, luego escribe un nuevo carcter; vers que el carcter original ha sido reemplazado. Para acabar, situate en una linea cualquiera del archivo y escribe dd. Observars que dd elimina la linea de texto actual. Repitiendo y borrando Puedes repetir cualquier comando de edicin pulsando la tecla .. Si experimentas un poco, vers que tecleando dd... eliminas 4 lineas, y J...... junta 4 lineas. Como siempre, vi nos proporciona otro atajo til :) Para borrar texto, puedes usar el comando d combinado con cualquier comando de movimiento. Por ejemplo, dw eliminar el texto desde la posicin actual hasta el comienzo de la siguiente palabra; d) eliminar hasta el final de la siguiente frase, y d} eliminar lo que queda de prrafo. Experimenta un poco con el comando d y el resto de comandos de edicin hasta que te sientas cmodo con ellos. Deshacer Ahora que ya hemos experimentado con el borrado, seria bueno aprender como deshacer cualquier cambio. Presionando u, la versin original de vi permita deshacer el ltimo cambio. Las versiones ms actuales de vi, como vim, te permiten presionar u repetidamente para ir deshaciendo los cambios que hayas podido hacer. Prueba de combinar algunos comandos d y u alternativamente. Actualizando la hoja de trucos Hora de actualizar la hoja de trucos! Despus de aadir los comandos que hemos aprendido hasta ahora, tu hoja de trucos debera parecerse a sta: Ilustracin 6.1: Hoja de trucos con comandos de edicin

7. Modo Insertar Hasta ahora, has aprendido cmo moverte dentro de vi, realizar e/s de archivos y algunas operaciones bsicas de edicin. De todas formas, todava no te he enseado como introducir texto libremente! Lo he hecho intencionadamente, porque el modo insertar de vi es un poco complicado al principio. De todas formas, una vez te acostumbres al modo insertar, su complejidad (y flexibilidad) se convertirn en una ventaja. Dentro del modo insertar de vi, podrs introducir texto directamente en la pantalla de la misma forma que lo haces con otros editores visuales. Una vez hayas introducido tus modificaciones, puedes presionar escape para volver al modo comando. Para entrar en modo insertar, presiona i o a. Al presionar i, tu texto ser insertado delante del carcter actual, y si pulsas a, tu texto sera aadido justo despus del carcter actual. Recuerda, debes presionar <ESC> para volver al modo comando. Ventajas del modo Insertar Ves probando los comandos a y i. Pulsa tanto a como i, escribe algo de texto, y luego pulsa escape para volver al modo comando. Despus de pulsar a o i, prueba de darle a <ENTER>, y mira que ocurre. Prueba tambin a usar las teclas cursor (flechas) y <DEL> para deducir el uso del modo insertar. Usando las teclas cursor y <DEL>, puedes realizar bastantes tareas de edicin sin tener que cambiar varias veces de modo comando a modo insertar y viceversa. Opciones de Insertar Aqu tienes otras formas prcticas de acceder al modo Insertar. Presiona A (en maysculas) para empezar a aadir texto al final de la lnea actual, independientemente de tu posicin actual en sa lnea. De la misma forma, pulsa I (mayscula) para empezar a introducir texto al principio de la lnea actual. Pulsa o para crear una nueva linea por debajo de la lnea actual, en la cual podrs introducir texto, y pulsa O (mayscula) para crear una linea nueva por encima de la actual. Para reemplazar totalmente la

linea actual con una nueva, teclea cc. Para reemplazar todo desde la posicin actual hasta el final de la linea, teclea c$. Para reemplazar todo desde la posicin actual hasta el principio de la lnea, teclea c0. Adems de realizar una operacin especial, cada uno de estos comandos te pondr en Modo Insertar. Despus de introducir tu texto, pulsa <ESC> para volver al modo comando. Cambiando texto Hemos usado el comando c (cambiar) por encima cuando hemos tecleado cc, c0 y c$. cc es una forma especial de comando de cambio, similar a dd. Los comandos c0 y c$ son ejemplos de como usar el comando cambiar en combinacin con los comandos de desplazamiento. De la misma forma, c funciona de una forma parecida a d, exceptuando que ste te deja en Modo Insertar para que puedas entrar texto de reemplazo en la regin recin eliminada. Prueba a usar varios comandos de desplazamiento con c y prubalos con tu archivo (pista: cW, ce, c( .) 8. Comandos Combinados vi se vuelve realmente potente cuando comienzas a usar comandos combinados (comandos "combo"), como por ejemplo, d{ y cw. A parte de estos comandos, tambin puedes combinar un nmero con cualquier comando de movimiento, as por ejemplo 3w indicar a vi que salte tres palabras a la derecha. A continuacin te muestro algunos ejemplos ms de comandos "combo": 12b, 4j. vi, adems de permitir combinaciones del tipo (nmero)(comando de movimiento), tambin permite combinar d o c con un nmero o con un comando de movimiento. As, d3w eliminar las 3 palabras siguientes, d2j eliminar la siguiente lnea y las dos siguientes, etc. Prueba a combinar varios combos con c y d para ver lo potente y gil que puede ser la edicin con vi. Una vez asimiles estos comandos, sers capaz de editar archivos a una velocidad increble. Actualizando la hoja de trucos Hora de actualizar de nuevo la hoja de trucos. Ms o menos debera parecerse a esto: Ilustracin 8.1: Hoja de trucos con comandos combinados

Caractersticas de productividad Hasta ahora, hemos visto como movernos, salvar y salir, realizar ediciones y borrados simples y usar el modo insertar. Con todo sto en la hoja, deberas ser capaz de usar vi para realizar casi cualquier tarea. Pese a sto, vi tiene ms comandos tiles. En sta seccin aprenders como cortar, copiar, pegar, buscar, reemplazar y usar autoindentacin. Todas stas posibilidades ayudarn a hacer a vi un poco ms divertido y productivo. Modo Visual La mejor forma para cortar y pegar es usar el modo visual, un modo especial que ha sido aadido en versiones modernas de vi, como vim y elvis. Puedes considerar el modo visual como un modo de "resaltado de texto". Una vez que el texto queda resaltado, puede ser copiado o eliminado, para ser

pegado despus. Si estas usando gvim, puedes resaltar el texto simplemente arrastrando el ratn con el botn izquierdo presionado sobre una regin de texto determinada: Ilustracin 8.2: VIM con texto resaltado

Puedes entrar en modo visual pulsando v (que es la nica opcin que tendrs si usas vi desde la consola.) Entonces mueve el cursor usando los comandos de movimiento (o ms tpicamente, las teclas de desplazamiento), vers que puedes resaltar una regin de texto. Cuando la regin de texto que quieras est resaltada, estar lista para ser cortada o copiada. Si quieres copiar el texto, pulsa y (que proviene del trmino ingls "yank"). Si ests cortando el texto, pulsa d. Volvers entonces al modo comando. Ahora situate en la posicin donde quieres insertar el texto copiado o cortado, y pulsa P para insertar el texto antes del cursor, o p para insertarlo despus. Voil! El copiado/cortado est completo! Prubalo varias veces antes de avanzar a la siguiente seccin. Reemplazando texto Para reemplazar patrones de texto, usamos el modo ex. Si quieres reemplazar el primer patrn que aparece en la lnea actual, escribe :s/<regexp>/<reemplazo>/ y presiona <ENTER>, substituye <regexp> por el texto que quieres substituir y <reemplazo> por la cadena con el que lo quieres substituir. Para reemplazar todas las coincidencias en la lnea actual, teclea :s/<regexp>/<reemplazo>/g y pulsa enter. Para reemplazar todas las ocurrencias de un patrn en tu archivo (que normalmente es lo que quieres), escribe :%s/<regexp>/<reemplazo>/g. Si quieres realizar un reemplazo global, pero haciendo que vi te confirme cada vez cada cambio, teclea :%s/<regexp>/<reemplazo>/gc (la c viene del ingls, "change", cambiar) y pulsa <ENTER>. Indentacin vi incluye soporte para autoindentacin, ideal para editar cdigo fuente. La mayora de las versiones modernas de vi (p.e. vim) activarn automticamente el modo autoindentado cuando edites un archivo

de cdigo fuente (cmo por ejemplo un archivo .c). Cuando el autoindentado est activo, puedes usar <CTR>d (control-d) para indentar un nivel hacia la izquierda y <CTR>t (control-t) para indentar a la derecha un nivel. Si el autoindentado no se activa automticamente, puedes hacerlo de forma manual con el comando ex :set autoindent. Puedes tambin indicar a vi el tamao de cada tabulacin a tu gusto mediante el comando :set tabstop; :set tabstop=4 es bastante popular. La hoja de trucos definitiva Y bien, ya hemos llegado al final de ste tutorial de vi! Una vez aadas todos los comandos de edicin avanzada a tu hoja de trucos, debera quedar como la siguiente: Ilustracin 8.3: Hoja final de trucos

Ten tu hoja de trucos a mano, y empieza a usar vi para editar archivos y escribir correos electrnicos. Usa la hoja de trucos cuando la necesites; vers que en una semana te sabrs casi todos los comandos

de memoria y tu productividad con vi llegar a su mximo. Si quieres usar vi como tu editor por defecto haz el siguiente cambio en /etc/rc.conf: Listado de Cdigo 8.1: Usar vi como editor por defecto
(Establece EDITOR a tu editor preferido.) #EDITOR="/bin/nano" EDITOR="/usr/bin/vim" #EDITOR="/usr/bin/emacs"

VI Comandos de Referencia
27 03 2008

Les dejo un escrito que hizo un compaero de laburo que me pareci muy bueno y til!!! Modos Modo Comandos: Siempre que se inicia vi comienza en modo de comandos, que como su nombre lo indica permite introducir comandos que ejecuten una accin especfica, como bsquedas, copiar, pegar, eliminar lneas, mover el cursos, posicionarse en una parte del documento, etc. Varios comandos estan disponibles directamente, con solo apretar una o dos teclas, y otros estn disponibles en modo last line o ltima lnea, para la cual se accede presionando la tecla dos puntos : y a continuacin la accin o comando a ejecutar. Para salir del modo de ltima lnea se presiona ESC. Modo Insercin: Este modo es cuando se est realmente en el documento, cuando se puede escribirlo y/o editarlo. Para ingresar al modo de Insercin se pueden utilizar distintos comandos, los cuales se describen a mas adelante, en su apartado respectivo. Para salir del modo Insercin y volver al modo Comandos se presiona la tecla ESC. Iniciar vi y comandos relacionados con archivos vi archivo vi /usr/local/archivo vi -r vi -r archivo vi arch1 arch2 vi +45 archivo vi +/cadena archivo :e archivo2 :n :p :r otroarchivo :r !cmdlinux Crea o abre el archivo Crea o abre el archivo en el directorio indicado Muestra archivos rescatados Recupera archivo Abre los archivos arch1 y arch2 Abre archivo y posiciona el cursor en la lnea 45 Abre archivo y posiciona el cursor en la lnea donde encuentre cadena Abre archivo2 mientras se esta editando otro archivo. Avanza al siguiente archivo abierto Avanza al archivo abierto previo Inserta desde la posicin actual del cursor el contenido de otroarchivo Inserta desde la posicin actual del cursor la salida del comando indicado

:!cmdlinux

Se ejecuta el comando indicado

:w Guarda el documeno actual Terminando y cerrando

:q :q! :wq :wq nuevoarchivo

Termina y cierra si no hubo cambios Termina y cierra sin guardar los cambios Termina y guarda el documento Termina y guarda el documento con el nombre nuevoarchivo Termina y guarda el documento

Estableciendo Opciones :set :set all :set opcion :set noopcion :set un :set noun :set ro Muestra las opciones establecidas actualmente Muestra las posibles opciones Comienzo o inicio de la opcin Termina o quita la opcin Opcin que permite mostrar numeracin de lneas Quita la numeracin de lneas read only, archivo en modo solo lectura

:set tabstop=6 Establece el salto del tabulador a 6 espacios Movimiento del cursor

h l k j 0 (cero) $ w W b B e E n-

Una posicin a la izquierda (flecha izquierda) Una posicin a la derecha (flecha derecha) Una lnea hacia arriba (flecha arriba) Una lnea hacia abajo (flecha abajo) Inicio de lnea Fin de la lnea Adelante una palabra Adelante una palabra incluyendo puntuacin Atrs una palabra Atrs una palabra incluyendo puntuacin Al final de la palabra actual Al final de la palabra actual incluyendo puntuacin Arriba n lneas, primer caracter no espacio

n+ H M L

Abajo n lneas, primer caracter no espacio Primera lnea de la pantalla actual Lnea a mitad de la pantalla actual Ultima lnea de la pantalla actual

También podría gustarte