Edición de archivos de texto - Vi
Introducción
Sea cual sea el sistema operativo utilizado, es indispensable saber editar archivos de texto. Esto es mucho más cierto aún en Linux, pues la inmensa mayoría de los archivos de configuración y de scripts del shell están en este formato, sin olvidar también los archivos de log.
Se entiende por archivo de texto un archivo que contiene datos en forma de caracteres ASCII (American Standard Code for Information Interchange), es decir, texto sin formato, ni siquiera la noción de tipo de letra.
Desde el simple comando ed que permite editar línea por línea un archivo de texto, hasta la herramienta nedit con interfaz gráfica que propone el coloreado sintáctico de diferentes formatos de archivo, existe un gran número de editores en Linux.
A pesar de una interfaz poco ergonómica (pero sin embargo muy potente), el editor de Vi, se ha convertido en un estándar en todos los sistemas UNIX, y es el que presentaremos en este capítulo.
Actualmente, se utiliza una variante de Vi, normalmente Vim (Vi IMproved). Sin embargo, los comandos que veremos aquí son idénticos.
Presentación de Vi
Vi, que significa "VIsual editor" y se pronuncia "vi-ei" (o [vi:ai]), es un editor a pantalla completa con línea de comandos.
Pensado para trabajar en cualquier tipo de terminal (y por lo tanto con cualquier teclado), esta herramienta puede funcionar utilizando únicamente las teclas alfanuméricas básicas, además de la tecla de escape del teclado.
En un teclado de PC español "qwerty" actual, podríamos limitarnos a utilizar las teclas blancas siguientes:

Es posible utilizar las teclas grises del teclado, como las flechas de dirección o el teclado numérico, pero es preferible saber manipular vim sin estas teclas al principio. Así, sea cual sea la configuración del terminal o la variante de vi empleada, la edición de un archivo en Linux no presentará problemas.
1. Inicio de Vi
Basta con escribir el comando vi para iniciar el editor Vi. En este caso, se abre el editor, listo para escribir un nuevo archivo:

Aquí, el cursor se encuentra arriba a la izquierda de la pantalla y se muestra un texto de bienvenida; este no interfiere con el texto del nuevo archivo y se ocultará automáticamente con el primer comando de edición.
La última línea de la vista se reserva a mostrar información diversa (posición del cursor, número de línea, modo de funcionamiento...) y a los comandos en modo "ex" que se detallarán más adelante.
El carácter ~ al principio de línea significa que no hay ningún carácter -ni siquiera un retorno de carro (tecla [Intro])- en la línea, es decir, que se ha llegado al final del archivo.
También puede editarse un archivo existente especificando su nombre como argumento en la línea de comando:
$ vi archivo
Finalmente, si el argumento pasado es un nombre de archivo inexistente, el nuevo archivo editado se guardará con este nombre predeterminado:
$ vi nuevo_archivo
Para salir del editor Vi sin haber leído el resto del capítulo, hay que escribir la siguiente secuencia de teclas: [Esc], [:], [q], [!], [Intro].
2. Modos de funcionamiento
Vi dispone de tres modos de funcionamiento:
-
Modo "comandos": en este modo, cada pulsación de una tecla o una combinación de teclas se interpreta como un comando (mover el cursor...
Otras herramientas de edición
Las distribuciones de Linux incluyen generalmente una multitud de editores de texto, editores hexadecimales (para los archivos binarios, por ejemplo) y tratamientos de texto (maquetación de documentos).
1. Otros editores de texto
Veamos algunas herramientas suplementarias para la edición de archivos de texto.
Nano
Nano es un pequeño editor bajo licencia GNU GPL, derivado del editor Pico proporcionado con el cliente de mensajería electrónica Pine. Se ejecuta mediante el comando nano, es fácil de utilizar y ofrece un menú a pesar de no emplear el interfaz gráfico.

El uso de los menús se efectúa combinando la tecla [Ctrl] (representada por ^) o [Alt] (representada por M-) y la letra del menú.
Emacs, XEmacs
Emacs (comando emacs desde un terminal de texto o usando el comando emacs -nw desde un emulador de terminal) es un editor que funciona en una consola de texto desarrollado por Richard Stallman. Más allá de la edición de archivos de texto, dispone un gran número de módulos complementarios.

La versión gráfica de esta utilidad:

Editor de texto de Gnome
Incluida en el entorno de escritorio GNOME, esta herramienta es muy fácil de usar y ofrece varias funciones interesantes, incluyendo el resaltado de sintaxis.
Se inicia con el comando gnome-text-editor o desde el menú de aplicaciones del entorno gráfico...
Ejercicio
Ejercicio
Si el comando vimtutor está instalado en su sistema, inícielo y siga el tutorial Vim propuesto.
Solución
El comando vimtutor ejecuta Vim abriendo un archivo de texto concebido en concreto para el aprendizaje de las funciones principales del editor. Basta con leer el texto y seguir las instrucciones mostradas:
===============================================================================
= B i e n v e n i d o a l t u t o r d e V I M - Versión 1.7 =
===============================================================================
Vim es un editor muy potente que dispone de muchos mandatos, demasiados
para ser explicados en un tutor como este. Este tutor está diseñado
para describir suficientes mandatos para que usted sea capaz de
aprender fácilmente a usar Vim como un editor de propósito general.
El tiempo necesario para completar el tutor es aproximadamente de 25-30
minutos, dependiendo de cuánto tiempo se dedique a la experimentación.
Los mandatos de estas lecciones modificarán el texto. Haga una copia de
este fichero para practicar (con «vimtutor» esto ya es una copia).
Es importante recordar...