Manual introductorio Universitat Oberta de Catalunya
GNU/Linux Manual introductorio

vi / vim

gmmd

Linux proporciona una amplia variedad de aplicaciones de edición de texto de muy diversos tipos y diferentes niveles de prestaciones, de forma que es una cuestión de gustos o necesidades más o menos avanzadas elegir entre una u otra. La razón para conocer el editor vi es que se encuentra virtualmente en todas las distribuciones de Linux y funciona en modo texto. Así, aunque podamos preferir un editor de otro tipo en el uso diario, puede haber ciertas ocasiones en las que resulte útil saber utilizarlo al menos a nivel básico, como por ejemplo situaciones en las que no es posible acceder al entorno gráfico o en accesos remotos al sistema con disponibilidad limitada de aplicaciones.

Arrancando vi

Para arrancar vi simplemente hemos de escribir el comando desde un terminal. Si le proporcionamos un nombre de fichero como parámetro, abrirá dicho fichero, si no, abrirá uno nuevo. Entremos, por ejemplo

$ vi prueba.txt

Se abrirá el programa, que ocupa toda la pantalla, sitúa el cursor arriba a la izquierda y llena la mayor parte de líneas con el carácter ‘~’ indicando que no contienen texto. En la parte inferior se encuentra el área de estado y de comandos que, en este momento, indica que hemos abierto un fichero nuevo llamado prueba.txt.

El editor ofrece dos modos de funcionamiento, el modo de edición y el modo comando. El primero es el que permite realizar todas las tareas posibles de edición, es decir, inserción, modificación o eliminación y considera cada tecla como texto a incluir. El segundo, en cambio, interpreta lo que tecleamos como parte de un comando y no lo incluye en el texto sino que lleva a cabo una acción (por ejemplo, guardar el fichero).

Mi primer texto

Al arrancar, vi se encuentra en modo comando, por lo que habrá que proporcionarle alguno para pasar al modo de edición, como por ejemplo insert. Para ello pulsamos una i y a partir de ese instante el texto que entramos se incluye en el fichero.  Puedes observar como la línea de estado de vi indica que estamos en modo de inserción (‘–INSERT–‘). Mientras editamos podemos movernos a través del texto con las flechas del teclado e insertar nuevas líneas con la tecla intro. Introduce el texto ‘Al principio cuesta un poco acostumbrarse a vi, pero puede llegar a ser un editor muy potente.’.

Una vez hemos entrado el texto, tendremos que grabarlo mediante el comando correspondiente. Para pasar al modo comando utilizaremos la tecla ESC. Al pulsarla, vemos como cambia la línea de estado dejando de indicar el modo anterior. Ahora podemos introducir un comando. Concretamente, para guardar los cambios en el fichero utilizaremos ‘w‘. La línea de estado indicará que el texto se ha grabado correctamente:

vi01

Para salir utilizaremos el comando ‘q‘, que nos devolverá a la línea de comandos del terminal. Otros comandos útiles son los siguientes:

  • q!‘ para salir sin guardar los últimos cambios.
  • wq‘ para guardar los cambios y salir.
  • r‘ seguido del nombre de un fichero para insertar el contenido de otro fichero.

Al principio es normal que a veces no sepamos en que modo estamos e intentemos editar cuando estamos en modo comando sin resultados. Si no estamos seguros, lo más conveniente es pulsar ESC para estar seguro de pasar a modo comando y así entrar fácilmente al modo de edición.

Modificación de texto

Aunque versiones modernas de vi permiten eliminar texto utilizando las teclas de borrado habituales, podemos encontrarnos en situaciones donde la terminal no esté configurada para ello. En estos casos, es útil conocer algunos comandos que realizan estas funciones.

Vamos a volver a editar el texto anterior entrando el comando ‘vi prueba.txt‘. Ahora realizaremos los siguientes pasos para ver un ejemplo de uso de comandos para la eliminación de texto:

  1. Introduce el comando ‘i‘ para entrar en modo de edición.
  2. Sitúate sobre la letra ‘u’ de ‘un poco’ y pulsa la tecla ESC para pasar a modo comando.
  3. Pulsa ‘x‘ varias veces hasta borrar ‘un poco’. Verás como se van eliminando caracteres hacia la derecha.
  4. Entra ‘A‘ para colocarte en modo de edición al final de la línea.
  5. Pulsa la tecla intro para pasar a una línea nueva e introduce el texto ‘Esta línea no sirve’.
  6. Vuelve a pulsar ESC para pasar al modo comando y entra ‘dd‘ para borrar la línea completa.

Igualmente, aunque para desplazarnos podemos utilizar las flechas del teclado, si ello no fuera posible disponemos también de los siguientes comandos:

‘j’ mover el cursor hacia abajo.
‘k’ mover el cursor hacia arriba.
‘h’ mover el cursor hacia la izquierda
‘l’ mover el cursor hacia la derecha

Si quieres repetir el último comando puedes entrar simplemente un punto ‘.’ y se volverá a ejecutar. Si en cambio, quieres deshacerlo puedes usar el comando ‘u’.