Un editor de texto es un programa usado para editar (es decir, crear o modificar) archivos que contienen texto, tales como una carta, un programa en Pascal, o un archivo de configuración del sistema. Existen muchos editores disponibles para Unix, pero el único que estarás seguro de encontrar en cualquier sistema Unix es vi : el "editor visual". vi no es el editor más fácil de usar, porque no es muy amigable. Sin embargo, debido a que es tan común en el mundo Unix y es muy poderoso, ten por seguro que en alguna oportunidad deberás vértelas con él.
Mientras uses vi, en cualquier momento te encontrarás en uno de los tres modos de operación. Estos tres modos son conocidos como modo de comandos, modo de inserción, y modo de última línea.
Cuando empiezas vi, te encuentras en el modo de comandos. Este modo te permite usar ciertos comandos para editar archivos o cambiarte a los otros modos. Por ejemplo, tipeando "x" mientras estés en el modo de comandos borrarás el caracter bajo el cursor. Las teclas de flechas mueven el cursor a través del archivo que estás editando. Generalmente, los comandos usados en el modo de comandos son de uno o dos caracteres de largo, y no es necesario presionar [Enter] después de darlos, pues su efecto es inmediato.
Para insertar o editar texto debes estar en el modo de inserción. Cuando uses vi, probablemente estarás la mayor parte del tiempo en este modo. Puedes partir el modo inserción usando un comando como "i" (por "insert") desde el modo de comandos. Mientras estés en el modo de inserción, estarás insertando texto en el documento en el punto del cursor. Para terminar el modo de inserción y volver al modo de comandos, presiona [esc].
El modo de última línea es un modo especial usado para dar ciertos comandos extendidos a vi. Mientras tipeas estos comandos, ellos aparecen en la última línea de la pantalla (de ahí su nombre), y para ejecutarlos debes terminar presionando [Enter]. Por ejemplo, cuando tipeas ":" desde el modo de comandos, saltas dentro del modo de última línea, y puedes usar comandos como "wq" para escribir el archivo y salir de vi, o "q!" para salir de vi sin grabar los cambios. El modo de última línea es usado generalmente para comandos de vi que son más largos de un caracter.
La mejor forma de entender estos conceptos es simplemente usando vi para editar un archivo de prueba. En el ejemplo que veremos, la pantalla será solo de 6 líneas, en vez de las 25 usuales.
La sintaxis para vi es:
vi nombrearch
donde nombrearch es el nombre del archivo que quieres editar.
Partamos vi tipeando
[araucaria:]% vi prueba
lo cual editará el archivo prueba. Deberías ver algo como esto:
~ ~ ~ ~ ~ ~ "prueba" [New file]
La columna de caracteres "~" indica que estás al final del archivo.
Tu estás ahora en el modo de comandos; para insertar texto dentro del archivo, presiona [i] (lo cual te pondrá en el modo de edición) y comienza a tipear.
Esta es la primera vez que escribo con vi_ ~ ~ ~ ~ ~ "prueba" [New file]
Mientras estés insertando texto, puedes tipear cuantas líneas quieras (presionando [Enter] después de cada una, por supuesto), y puedes corregir los errores usando la tecla "backspace". Nota sí que al borrar de esta manera, los caracteres se mantienen en pantalla hasta que son reescritos.
Para finalizar el modo de edición, y volver al modo de comandos, presiona [esc].
Mientras estés en modo de comandos, puedes usar las teclas de flechas para moverte por todo el archivo. Aquí, como tenemos solo una línea de texto, al tratar de usar las flechas para subir y para bajar vi hará un pitido.
Existen varias otras formas para insertar texto además del comando i. Por ejemplo, el comando a inserta texto inmediatamente después de la posición actual del cursor. Por ejemplo, usa la flecha izquierda para mover el cursor sobre la "n" de "con".
Presiona [a] para comenzar el modo de edición, tipea "tra", y presiona [esc] para volver al modo de comandos.
Esta es la primera vez que escribo con vi ~ ~ ~ ~ ~ "prueba" [New file]
Esta es la primera vez que escribo contra vi ~ ~ ~ ~ ~ "prueba" [New file]
Para empezar a insertar texto en la linea debajo de la actual, usa el comando o. Por ejemplo, presiona [o] y tipea una o más lineas:
Esta es la primera vez que escribo contra vi pero creo que ya aprendi a usarlo ~ ~ ~ ~ "prueba" [New file]
Tan solo recuerda que en cualquier momento estás o en el modo de comandos (donde comandos tales como i, a, o, son válidos), o en modo de edición (donde insertas texto, y presionas [esc] para retornar al modo de comandos).
Desde el modo de comandos, el comando x borra el caracter bajo el cursor. Si presionas [x] cuatro veces, terminarás con:
Esta es la primera vez que escribo contra vi pero creo que ya aprendi a us ~ ~ ~ ~ "prueba" [New file]
Puedes borrar lineas enteras usando el comando dd (es decir, presionando [d] dos veces). Si tu cursor está en la segunda linea, y tipeas dd,
Esta es la primera vez que escribo contra vi ~ ~ ~ ~ ~ "prueba" [New file]
Para borrar la palabra en la cual se encuentra el cursor, usa el comando dw. Pon el cursor al comienzo de la palabra "contra", y tipea dw.
Esta es la primera vez que escribo vi ~ ~ ~ ~ ~ "prueba" [New file]
Para salir de vi sin hacer cambios en el archivo (manteniendo la copia original), usa el comando :q! . Cuando tipeas el ":", el cursor se mueve a la ultima linea de la pantalla; estás entonces en el modo de última linea.
Esta es la primera vez que escribo vi ~ ~ ~ ~ ~ :_
En el modo de última linea, hay disponibles ciertos comandos extendidos. Uno de ellos es q! que sale de vi sin grabar. El comando wq (también desde la última línea) graba el archivo y sale. El comando ZZ (desde el modo de comandos, sin los ":") es equivalente a :wq.
Para grabar el archivo sin salir de vi, usa solo :w.
Esta es la primera vez que escribo vi ~ ~ ~ ~ ~ "prueba" [New file] 1 line, 38 characters
Si usas el comando :r puedes incluir el contenido de otro archivo en el actual. Por ejemplo, el comando
:r tarea1.pas
insertará el contenido del archivo tarea1.pas en la posición actual
del cursor en el texto.