Puede parecer que no es cierto, pero Unix fue creado en 1969. Las herramientas de UNIX fueron apareciendo a medida que surgían las necesidades para trabajar con él. El primer editor de textos fue ed, escrito en ensamblador en 1971. Se trataba de una editor de líneas muy parecido a EDLIN, presente en MS-DOS, y ED, presente en CP/M (antecesor de MS_DOS).
En un editor orientado a líneas, nunca se trabaja sobre todo el documento a la vez, sino que se listan (comando l), una serie de líneas, se borran (comando d), o se insertan (comando i). Cuando se quiere que el comando se aplique a varias líneas, se indica el intervalo separado por una coma, y el comando al final. Por ejemplo, 2i insertaría una línea de texto en la actual línea número 2.
> l
1: Esta es la primera línea.
2: Esta es la segunda línea.
3: Esta es la tercera línea.
> 1,2l
1: Esta es la primera línea.
2: Esta es la segunda línea.
> 2i
Esta es una línea insertada entre la primera y la segunda.
> l
1: Esta es la primera línea.
2: Esta es la segunda línea.
3: Esta es una línea insertada entre la primera y la segunda.
4: Esta es la tercera línea.
Pero esta entrada ahonda en el editor de textos vi, que nació en 1976 (hace unos 50 años, o medio siglo, en el momento de escribir este texto). Tras unos quince años, en 1991, nació vim, o Vi IMproved, una mejora sobre vi.
Vi surgió como una interfaz para Ex, un editor orientado a líneas. Al contrario que estos editores, Vi mostraba el texto completo, en toda la pantalla, de manera que era mucho más cómodo que cualquier editor de textos orientado a líneas. Divide su funcionalidad, en cambio, en dos modos: el modo de edición, y el modo de comando. Así, si en cualquier momento se pulsa ESC para salir del modo de edición (si es que se está en este modo), y después se teclea :q se sale del programa. Si se teclea :q!, se sale del programa inmediatamente, descartando posibles cambios. Si se teclea :w, entonces el archivo se escribe a disco. Se pueden combinar comandos, como :wq, que escribe el texto en disco y sale del programa.
| Modo | Explicación |
|---|---|
| Edición | Cada tecla pulsada es un nuevo carácter en el texto. |
| Comando | Las teclas son parte de un comando. |
| Comando | Pasa modo | Explicación |
|---|---|---|
| i | Edición | Insertar texto antes de la posición actual. |
| a | Edición | Insertar texto tras la posición actual. |
| ESC | Comando | Salir del modo de edición. |
| h, j, k, l | Comando | Mover el cursor por el texto. |
En 1985 surgió EMACS, otro editor de textos fuertemente basado en LISP(un lenguaje funcional), para su extensión mediante complementos. La extensión por complementos se hizo tan viral que existen un montón de complementos para él, y de hecho, es conocido como un sistema operativo, en lugar de un simple editor de texto.
Vi se apuntó a esta posibilidad de extensión por complementos, de forma que también se convirtió en un editor configurable para múltiples lenguajes de programación, y otras funcionalidades. El hecho es que ambos se han convertido en editores de textos extraordinariamente complejos en cuanto a configuración, de forma que el archivo de configuración de .vimrc se convierte en un activo complejo, que es necesario compartir entre todos los ordenadores en los que se use.
Durante muchos años, cuando se estilaban las discusiones espúreas, (como por ejemplo, Windows vs Mac), mucha gente con toneladas de tiempo libre se dedicaban a discutir cuál de ambos editores de texto (Vi vs Emacs), era mejor que el otro.
Aunque parece que el uso de Emacs ha ido decreciendo, con un porcentaje de uso de menos de un 9%, VIM mantiene un uso de casi un 25%. Entre los programadores en UNIX/LINUX, claro. Hoy en día, con más de un 70%, parece que el editor de textos más popular es Visual Studio Code, incluso con un uso indirecto en editores como Cursor, que utilizan el código fuente de Visual Studio Code para crear su propio editor con el soporte para agentes IA.
Pero siempre me sorprende que todavía haya mucha gente utilizando Vi o Vim. Por supuesto, con el tiempo, aparecieron "ayudas": además de poder utilizar h, j, k, l para mover el cursor, se mapearon las flechas del cursor, por poner un ejemplo. Y es que, ¿por qué utilizar teclas "normales" para utilizar funciones de edición de texto?
La respuesta es realmente muy simple: porque no había otras teclas disponibles. Lo de arriba es un terminal "tonto", no un ordenador completo; es lo que se utilizaba para comunicarse con el ordenador central. Pero es muy moderno para lo que estamos hablando aquí. El terminal se conoce como tty, o máquina de escribir en teletipo (teleprinter o teletypewriter); y es que era exactamente eso, una máquina de escribir para enviar comandos al ordenador central, y un papel de teletipo para recibir la respuesta. El terminal del que estamos hablando aparece a continuación.
¿Parece una máquina de escribir? Efectivamente, la máquina de escribir era lo más parecido por aquella época con respecto a un terminal de ordenador. Teclas para las letras del abecedario, otras para los dígitos del 0 al 9, un tabulador, una barra espaciadora, salto de línea, y poco más.
¿Sabías que la distribución de teclado qwerty no está pensada para poder escribir tan rápido como sea posible? ¡No! Está pensada para que las teclas más comunes estén muy separadas, y así, las primeras máquinas de escribir no se atascaran...
Así que Vi utilizaba estas teclas "comunes", simplemente, porque no había otras. De ahí que existieran varios modos de operación: de otra forma, no sería posible introducir las teclas de comando en el texto.
Con el tiempo, aparecieron las teclas especiales: las flechas para el cursor, suprimir y borrar, las flechas de modificación como Ctrl y Alt, o incluso, Shift (no, al principio los ordenadores no tenían letras minúsculas). Una vez que aparecen las teclas especiales, editores de texto como Vi, con múltiples modos, símplemente no son necesarios.
¿Por qué, entonces, Vi ha sobrevivido con tanta popularidad hasta nuestros días? Sin duda, parte de la respuesta es la aparición de innumerables complementos para el editor. El resto, para mi es un misterio. Sobre todo cuando tenemos en cuenta que Vi, con un par de docenas de complementos, es lo mismo que un editor de textos moderno.
En cualquier caso, si usas Vi, eres un usuario retro, te guste o no, de un programa que tiene sus raíces en los años 70 del siglo pasado.







