EL EDITOR VI |
Un editor de texto es simplemente un programa usado para la edición de ficheros que contienen texto, como una carta,
un programa en C, o un fichero de configuración del sistema. Mientras que hay muchos editores de texto disponibles en
Linux, el único editor que está garantizado encontrar en cualquier sistema UNIX es vi el "visual editor". vi
no es el editor más fácil de usar, ni es muy autoexplicativo. De cualquier forma, como es tan común en el mundo UNIX y
es posible que alguna vez necesite usarlo, aquí encontrará algo de documentación.
La elección de un editor es principalmente una cuestion de gusto personal y estilo. Muchos usuarios prefieren el
barroco, autoexplicativo y potente Emacs un editor con mas características que cualquier otro programa único en
el mundo UNIX. Por ejemplo, Emacs tiene integrado su propio dialecto del lenguaje de programación LISP y tiene muchas
extensiones (una de ellas es el programa "Eliza" como programa de IA).
Pero como Emacs y todos sus ficheros de soporte es relativamente grande, puede que no tenga acceso a el en muchos
sistemas.
vi , por otra parte, es pequeño y potente, pero mas difícil de usar. De cualquier modo, una vez que conozca la forma
de funcionamiento de vi, es muy fácil usarlo. Simplemente la curva de aprendizaje es bastante pronunciada al comienzo.
Esta sección es una Introduccion coherente a vi no discutiremos todas sus características, solo aquellas necesarias para que sepa como comenzar. Puede dirigirse a la pagina de manual de vi si esta interesado en aprender mas acerca de las características de este editor, o puede leer el libro Learning the vi Editor de O'Reilly and Associates. Vea el Apéndice A para información.
Mientras se usa vi, en cualquier momento estará en uno de tres posibles modos de operación. Estos modos son conocidos
como modoordenes, modo inserción y modo ultima linea. Cuando inicia vi, esta en el modoordenes. Este modo le permite
usar ciertas ordenes para editar ficheros o cambiar a otros modos. Por ejemplo, tecleando "x" mientras está en el
modoordenes, borra el carácter que hay debajo del cursor. Las teclas del cursor mueven este por el fichero que estamos
editando. Generalmente, las ordenes usadas en este modo son solo de uno o dos caracteres de longitud.
Habitualmente insertará o editará texto desde el modo inserción. Usando vi, probablemente dedicará la mayor parte del
tiempo en este modo. Inicia el modo de inserción al usar una orden como "i" (para "insertar") desde el modo de ordenes.
Una vez en el modo de inserción, ira insertando texto en el documento desde la posición actual del cursor. Para salir
del modo de inserción y volver al de ordenes, pulse [esc].
Modo ultima linea es un modo especial usado para proporcionar ciertas ordenes extendidas a vi. Al usar esos comandos,
aparecen en la ultima linea de la pantalla (de ahí el nombre). Por ejemplo, cuando teclea ":" desde el modo de ordenes,
entrará en el modo ultima linea, y podrá usar ordenes como "wq" (para escribir el fichero a disco y salir de vi), o
"q!" (para salir de vi sin guardar los cambios). El modo de ultima linea es habitualmente usado por ordenes vi mayores
de un carácter.
En el modo de ultima linea, introduce una orden de una sola linea y pulsa [enter] para ejecutarla.
La mejor forma de entender estos conceptos es arrancar vi y editar un fichero. En el ejemplo
"screens" que veremos, vamos a mostrar solo unas pocas líneas de texto, como si la pantalla tuviese solo seis líneas de altura (en lugar de veinticuatro).
La sintaxis de vi es
vi
lo que editará el fichero test. Debería ver algo como
/home/larry# vi test
La columna de caracteres "~" indica que esta al final del fichero.
__________________________________________________________________
|
| ~
| ~
| ~
| ~
| ~
|_"test"_[New_file]__________________________________________________
Esta ahora en modoordenes; para poder insertar texto en el fichero, pulse [i] (lo que le hará entrar en modo inserción), y comience a escribir.
__________________________________________________________________ | Deckerix os saluda pequeñajos :-) | ~ | ~ | ~ | ~ | ~ |__________________________________________________________________ |
Desde el modo de ordenes, la orden x borra el carácter debajo del cursor.
Puede borrar líneas enteras usando la orden dd (es decir, pulse [d] dos veces en una fila).
Para borrar la palabra sobre la que se encuentra el cursor, use la orden dw.
Puede sustituir secciones de texto usando la orden R. Situe el cursor en la primera letra de "saluda" y pulse [R], y escriba la palabra "llama".
__________________________________________________________________ | Deckerix os saluda pequeñajos :-) | ~ | ~ | ~ | ~ | ~ |__________________________________________________________________ |
__________________________________________________________________ | Deckerix os saluda pequeñajas :-) | ~ | ~ | ~ | ~ | ~ |__________________________________________________________________ |
__________________________________________________________________ | DECKERIX OS SALUDA PEQUEÑAJAS :-) | ~ | ~ | ~ | ~ | ~ |__________________________________________________________________ |
Ya conoce como usar las teclas del cursor para moverse por el documento. Además, puede usar las ordenes h, j, k y l para mover el cursor a la izquierda, abajo, arriba y derecha respectivamente. Esto es muy cómodo cuando (por alguna razón) sus teclas de cursor no
funcionen correctamente.
· La orden w mueve el cursor al comienzo de la siguiente palabra;
. b lo lleva al comienzo de la palabra anterior.
· La orden 0 (cero) mueve el cursor al comienzo de la linea actual, y la orden $ lo lleva al final de la
linea.
Al editar ficheros grandes, querrá moverse hacia adelante y atrás a lo largo del fichero mostrando una pantalla cada vez.
Pulsando [ctrl-F] avanza el cursor una pantalla hacia adelante y [ctrl-B]lo lleva una pantalla atrás.
· Para llevar el cursor al final del fichero, pulse G. Puede también desplazarse a una linea arbitraria; por ejemplo,
pulsando la orden 10G llevará el cursor a la línea 10 del fichero. Para desplazarse al comienzo, use 1G. Puede
asociar ordenes de desplazamiento con otras ordenes como es el borrado. Por ejemplo, la orden d$ borrará todo
desde la posición del cursor al final de la linea; dG borrará todo desde la posición del cursor al final del fichero.
3.12.7 Guardando ficheros y saliendo de vi
Para salir de vi sin modificar el fichero use la orden :q!. Al pulsar ":", el cursor se desplazará a la última línea de la pantalla; está en modo ultima linea.
__________________________________________________________________ | DECKERIX OS SALUDA PEQUEÑAJAS :-) | ~ | ~ | ~ | ~ | :wq! |__________________________________________________________________ |
Para editar otro fichero use la orden :e. Por ejemplo, para dejar de editar el fichero test y en su lugar editar el fichero foo, use la orden
__________________________________________________________________ | DECKERIX OS SALUDA PEQUEÑAJAS :-) | ~ | ~ | ~ | ~ | :e foo |__________________________________________________________________ |
______________________________________________________________ | |No_write_since_last_change_(":edit!"___overrides) |______________________________________________________________ |
__________________________________________________________________ | DECKERIX OS SALUDA PEQUEÑAJAS :-) | ~ | ~ | ~ | ~ | :e! foo |__________________________________________________________________ |
3.12.9 Incluyendo otros ficheros
Si usas la orden :r Puede incluir el contenido de otro fichero en el fichero que esta editando. Por ejemplo
__________________________________________________________________ | DECKERIX OS SALUDA PEQUEÑAJAS :-) | ~ | ~ | ~ | ~ | :r foo.txt |__________________________________________________________________ |
3.12.10 Ejecutando comandos del interprete
Puede también ejecutar comandos del interprete desde el interior de vi. La orden :r! funciona como :r, pero en lugar de leer un fichero, inserta la salida de un comando dado en el fichero en la posición actual del cursor. Por ejemplo, si usa la orden
__________________________________________________________________ | DECKERIX OS SALUDA PEQUEÑAJAS :-) | ~ | ~ | ~ | ~ | :r! ls -F |__________________________________________________________________ |
__________________________________________________________________ | DECKERIX OS SALUDA PEQUEÑAJAS :-) | cartas/ | documentos/ | tesis/ | ~ | |__________________________________________________________________ |
:! ls -F |
:shell |
vi no proporciona demasiada ayuda de forma interactiva (la mayoría de los programas UNIX no lo hacen), pero siempre puede leer la pagina de manual para vi. vi es un "front-end" visual para el editor ex: es decir, es ex quien maneja la mayoría de las ordenes en el modo ultima linea. Luego además de leer la pagina de vi, consulte la de ex también.