Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/webcindario/o/s/osmes/web/common.php on line 135
http://osmes.webcindario.com/viewtopic.php?f=21&t=108 ----------------------------------- Yodeima 20.09.2011 9:58 Curso básico de vi ----------------------------------- Por Carva: El vi es uno de los editores de texto mas usado en linux. Hay que pensar que es un editor muy antiguo, y que se usa en modo consola, es decir, sin interface gráfica tipo Windows, por lo tanto, no puede tener menús, ni barras de herramientas, ni puede usar el ratón, etc. etc. El hecho de que sea muy antiguo no quiere decir poco potente, de hecho le da cien vueltas a muchísimos editores de Windows, y por supuesto al Notepad. Una vez que se conocen algunos de sus potentes comandos, nos daremos cuenta de la cantidad inmensa de posibilidades que tienen. Esta guia está basada en la referencia que aparece en esta página: http://www.pantz.org/software/vi/vireference.html Presta especial atención a mayúsculas y minúsculas y usa los comandos como aparecen aquí. Para manejarlo bien, hay que realizar tres fases fundamentales: 1) Usarlo 2) Usarlo 3) Usarlo Bueno, pues usémoslo! Lo primero y MUY IMPORTANTE, esto hay que saberlo y tenerlo en cuenta siempre Como en vi no tenemos menús, ni interface gráfica, ni ratón, tenemos que tener un modo de ejecutar las órdenes. Las órdenes son letras, símbolos y combinaciones, pero en un editor de texto lo que hacemos básicamente es teclear letras, símbolos y combinaciones, entonces ¿cómo hacemos para ejecutar comandos unas veces y teclear texto otras? Muy sencillo En vi hay DOS modos de funcionamiento y pasaremos constantemente de un modo a otro, de ahí la importancia de tener muy claro esto. Los modos son: 1) Modo Comando 2) Modo Texto (Inserción o entrada de texto) ¿Hay que explicarlo? 1) Modo Comando: Este es el estado inicial de vi, en este modo la mayoría de los comandos que teclees no se muestran, sino que se ejecutan. Sólo los comandos precedidos de los caracteres : , / o ! se mostrarán en la linea de status (la linea inferior). Use para cambiar de modo texto a modo comando (si tienes dudas, pulsa ). 2) Modo Texto: En este modo se entra pulsando a, A, i, I, o, ó O (veremos estos comandos mas adelante). Pulsa para terminar el modo texto y volver al modo comando. Abriendo, grabando y abandonando ficheros vi nombrefichero Abre (edita) el fichero especificado :w Escribe el fichero y continua en el vi (w=write) :wq Escribe el fichero y termina el vi saliendo al prompt del sistema (w=write, q=quit) ZZ Lo mismo que el anterior, pero mas directo (son 2 Z mayúsculas). Escribe el fichero y termina el vi saliendo al prompt del sistema. :q Sale del fichero si no hemos realizado cambios, ideal para "mirar" :q! Descarta todos los cambios que hemos hecho y abandonamos el fichero dejándolo como estaba, sale al prompt del sistema. Insertando texto Estos comandos pasan de modo comando a modo texto, por lo tanto son los mas usados para comenzar a teclear a (Añadir) comienza la inserción a la derecha del cursor A (Añadir) comienza la inserción al final de la línea actual i (Insertar) comienza la inserción a la izquierda del cursor I (Insertar) comienza la inserción al principio de la línea o (Abrir) abre una línea en blanco lista para teclear, por debajo de la actual O (Abrir) abre una línea en blanco lista para teclear, por encima de la actual Copiar, Pegar, Borrar, Deshacer dw Borra una palabra al buffer (portapapeles) dd Borra una línea al buffer (portapapeles) yw Copia una palabra en el buffer (portapapeles). Yank = copiar al portapapeles yy Copia una línea en el buffer (portapapeles). Yank = copiar al portapapeles x Borra un caracter al buffer (portapapeles) D Borra todos los caracteres desde el cursor hasta el final de la línea al buffer (portapapeles) Si ponemos un número delante de estos (y otros) comandos, la acción se repite n veces, por ejemplo: 5dw Borra 5 palabras 6dd Borra 6 líneas 12yy Copia 12 líneas al buffer (portapapeles) etc. p Pone el contenido del buffer despues del cursor (p=Put) P Pone el contenido del buffer antes del cursor (p=Put) u Deshace el último cambio simple (Undo) U Recupera la línea completa Comandos útiles 0 (Cero) mueve el cursor al principio de la línea $ (Dolar) mueve el cursor al final de la línea . (Punto) repite el último comando. Ejemplos: 5dd Borramos cinco líneas . Borramos otras cinco líneas . Borramos otras cinco líneas . Borramos otras cinco líneas 0 Nos colocamos al principio de la línea 27x Borramos 27 caracteres Flecha abajo y 0 (Cero) Nos colocamos al principio de la línea siguiente . Borramos otros 27 caracteres Flecha abajo y 0 (Cero) Nos colocamos al principio de la línea siguiente . Borramos otros 27 caracteres Flecha abajo y 0 (Cero) Nos colocamos al principio de la línea siguiente . Borramos otros 27 caracteres ¿Veis como se pueden quitar los primeros 27 caracteres de un montón de líneas? ¿Como hariais esto con el Notepad de Windows? Al principio es complicado, pero os animo a que probeis primero con ficheros de prueba, metiendo texto o copiando cualquier fichero y luego editandolo. Ejemplo: [code linenumbers=false]cd /usr/