3.4. El editor vi

Para muchas tareas de administración del sistema o de programación, todavía se usan los editores de texto. En el mundo de Unix, vi destaca como un editor que ofrece funciones de edición muy cómodas y es más ergonómico que muchos editores que admiten el ratón.

3.4.1. Modos operativos

[Note]presentación de teclas

A continuación encontrará varios comandos que puede introducir en vi pulsando teclas. Aparecen en mayúsculas como en un teclado. Si es necesario introducir una tecla en mayúsculas, se indicará expresamente mostrando una combinación de teclas que incluya la tecla Shift.

Básicamente, vi hace uso de tres modos operativos: modo de inserción, modo de comandos y modo extendido. Las teclas tienen distintas funciones según el modo que esté utilizando. Al iniciar, vi normalmente está definido en el modo de comandos. Lo primero que tiene que aprender es a cambiar entre los modos:

Del modo de comandos al de inserción

Hay muchas posibilidades entre las que se incluyen A para añadir al final, I para insertar u O para añadir una nueva línea debajo de la actual.

Del modo de inserción al de comandos

Pulse Esc para salir del modo de inserción. vi no puede cerrarse en el de inserción, por lo que es importante acostumbrarse a pulsar Esc.

Del modo de comandos al extendido

Se puede activar el modo extendido de vi mediante los dos puntos (:). El modo extendido o ex es similar a un editor independiente orientado a las líneas que puede usarse para varias tareas simples y más complejas.

Del modo extendido al de comandos

Después de ejecutar un comando en el modo extendido, el editor volverá automáticamente al modo de comandos. Si decide no ejecutar ningún comando en el modo extendido, suprima los dos puntos con <—. El editor vuelve al modo de comandos.

No es posible cambiar directamente del modo de inserción al extendido sin cambiar primero al modo de comandos.

vi, como otros editores, tiene su propio procedimiento para finalizar el programa. No puede finalizar vi mientras está en el modo de inserción. Primero, salga del modo de inserción pulsando la tecla Esc. Tiene dos opciones:

  1. Salir sin guardar: Para salir del editor sin guardar los cambios, introduzca : Q ! en el modo de comandos. El signo de exclamación de cierre (!) hace que vi omita los cambios.

  2. Guardar y salir: existen varias posibilidades para guardar los cambios y finalizar el editor. En el modo de comandos utilice Shift-Z-Shift-Z. Para salir del programa guardando todos los cambios con el modo extendido, introduzca : W Q. En el modo extendido w quiere decir "escribir" y q "salir".

3.4.2. vi en acción

vi se puede utilizar como un editor normal. En el modo de inserción, escriba y suprima texto con las teclas <— y Supr. Utilice las teclas de flecha para mover el cursor.

Sin embargo, estas teclas de control con frecuencia causan problemas porque hay muchos tipos de terminales que usan códigos de teclas especiales. En esta situación es donde el modo de comandos entra en juego. Pulse Esc para cambiar del modo de inserción al de comandos. En el modo de comandos, mueva el cursor con H, J, K y L. Estas teclas tienen las siguientes funciones:

H

Mover un carácter a la izquierda

J

Mover a la línea de abajo

K

Mover a la línea de arriba

L

Mover un carácter a la derecha

Los comandos en el modo de comandos permiten distintas variaciones. Para ejecutar un comando varias veces, introduzca el número de repeticiones antes de introducir el comando en cuestión. Por ejemplo, introduzca 5 L para mover el cursor cinco caracteres a la derecha.

La Tabla 3.1, “Comandos simples del editor vi” describe una selección de comandos importantes, aunque está lejos de ser completa. Encontrará listas más completas en la documentación de la Sección 3.4.3, “Información adicional”.

Tabla 3.1. Comandos simples del editor vi

Esc

Cambia al modo de comandos

I

Cambia al modo de inserción (los caracteres aparecen en la posición del cursor actual)

A

Cambia al modo de inserción (los caracteres se insertarán después de la posición del cursor actual)

Shift-A

Cambia al modo de inserción (los caracteres se añadirán al final de la línea)

Shift-R

Cambia al modo de sustitución (sobrescribe el texto antiguo)

R

Sustituye el carácter debajo del cursor

O

Cambia al modo de inserción (se inserta una línea nueva después de la actual)

Shift-O

Cambia al modo de inserción (se inserta una línea nueva antes de la actual)

X

Suprime el carácter actual

D D

Suprime la línea actual

D W

Suprime hasta el final de la palabra actual

C W

Cambia al modo de inserción (las siguientes entradas de texto que realice sobrescribirán el resto de la palabra actual)

U

Deshace el último comando

Ctrl-R

Rehace el cambio que se ha deshecho

Shift-J

Une la línea siguiente con la actual

.

Repite el último comando

3.4.3. Información adicional

vi admite una amplia gama de comandos. Permite el uso de macros, accesos directos, buffers con nombre y muchas otras funciones útiles. Una descripción más detallada de las distintas opciones excedería el alcance de este manual. SUSE Linux incluye vim, una versión mejorada de vi. Hay numerosas fuentes de información sobre esta aplicación:

[Important]la licencia de VIM

vim es “charityware” lo que quiere decir que el software no cuesta nada pero los autores animan a apoyar un proyecto sin ánimo de lucro con una contribución monetaria. Este proyecto solicita ayuda para los niños pobres de Uganda. Hay más información disponible en línea en http://iccf-holland.org/index.html, http://www.vim.org/iccf/ y http://www.iccf.nl/