El editor de texto Vi es una herramienta muy útil y práctica, conocerla bien puede significar un gran ahorro de tiempo en edición de archivos de texto. Trabaja en ambientes Linux y Unix aunque hay algunas versionas para Windows, por lo que es importante saber al menos el manejo básico del ambiente. Si utlizas Unix y aún no estás muy familiarizado te recomendamos el tutorial de introducción a Unix. (Baja el editor vi)

 

Un poco de historia

El editor de texto Vi existe en la actualidad gracias a Bill Joy, uno de los cofundadores de Sun Microsistems, uno de los principales proveedores de servidores con sistem tipo Unix.

Después de un tiempo de utilizar el editor ed para corregir algunas rutinas en Pascal de su amigo Ken Thompson en la Universidad de Berkeley, los resultados no fueron muy satisfactorios en cuanto a la facilidad de uso del sistema ed, por lo que comenzó tiempo después a escribir el código del editor Vi.

Existe el mito que este editor fue creado por Bill Joy en un fin de semana, lo cual , a decir del mismo Bill no es cierto, ya que le tomó mucho tiempo lograrlo debido a que tenía llegar a ser capaz de utilizarlo sobre un modem de 300 baudios, lo cual explica la sencillez de los comandos. 

Normalmente a los nuevos usuarios de este editor, les puede parece un poco incómodo utilizarlo pero esto es por que no estamos habituados, pero una vez que lo utilices con mayor frecuencia se te facilitará mucho y llegarás a ser fan de Vi, por su facilidad de uso y la rapidez que te brindan los comandos para poder editar un texto.

Modos de Vi

El editor vi tiene diferentes modos que se refieren a la acción que realizará el editor al ser recibida una instrucción del teclado, estos modos se pueden agrupar básicamente en dos conjuntos: modo edición y modo comando. En el primero podrás escribir, borrar o modificar texto como habitualmente se lleva a cabo en otros editores de texto. y en el segundo podrás darle instrucciones al editor. Si es un poco confuso en este momento no te preocupes, conforme vayamos avanzando te quedará más claro.

Modo texto 

El modo texto esta compuesto por varios modos que son muy similares pero con pequeñas diferencias, estos modos son el modo insertar, agregar, abierto y reemplazar. Sin profundizar demasiado en ellos, podemos decir que lo que escribas en alguno de estos modos será para la edición del texto del archivo.

Modo comando

Es el modo en el que está Vi por defecto al entrar. Mientras Vi esté en este modo no escribirá en la pantalla sino que cada letra (o número) escrito será tomado como una instrucción. Para ver las instrucciones que recibe en este modo hemos puesto al final de este tutorial una referencia de comandos .

Para realizar un comando un determinado número de veces se podrá escribir el número como prefijo del comando. De esto veremos algunos ejemplos más adelante.

Vi también recibe instrucciones desde línea de comando. Para activar este modo basta con escribir el signo de dos puntos : Al escribir los dos puntos, estos aparecerán a manera de línea de comando (prompt) en la parte baja de la pantalla con lo que vi indica que espera a recibir un comando.

Es importante no confundir la modo comando con la línea de comando ya que las instrucciones para cada uno son diferentes.

Siempre que utilices la tecla (Esc) entrará en el modo comando nuevamente, si comienzas a teclear un comando o a escribir una instruccion en la línea de comando y quieres cancelar, presiona la tecla (Esc) para entrar nuevamente al modo comando y cancelas las instrucciones que has indicado. 

Cómo entrar a Vi

Para entrar al editor de texto, es necesario estar en una terminal o en una pantalla de línea de comando del sistema operativo y teclear:

vi (Enter)

Esto nos permitirá crear un archivo nuevo, pero otra forma de entrar es teclear la instrucción incluyendo el nombre del archivo, de la siguiente manera:
vi archivo.txt(Enter)

A diferencia del anterior, nos indicará en la parte inferior de la pantalla una descripción del archivo que estamos abriendo. En caso de no existir el archivo.txt que hemos llamado, se creará uno nuevo con ese nombre, pero será almacenado en el disco duro hasta la primera vez que apliquemos la instrucción guardar.

Cómo salir de Vi 

Una vez que hemos ingresado el editor se encuentra en modo comando. Para salir del editor vi debemos teclear:
:q (Enter)

Como ya hemos mencionado, al escribir el : estos aparecerán en la parte inferior de la pantalla y posteriormente la instrucción q aparecerá contigüa a esos dos puntos.

Si te aparece un mensaje de advertencia informando que no se han guardado los cambios en el archivo, puedes guardarlos con el comando :wq o para salir sin guardar los cambios con el comando :q!


Configuración de vi

Este editor de texto permite ser configurado de acuerdo a tus preferencias de uso, son muy variadas las opciones que puedes configurar y dejarlo como a ti más te acomode.

 

Vamos a cambiar algunas de las configuraciones que utiliza vi de forma predeterminada. La primera será que nos indique cuando se encuentra en modo de edición de texto para lo cual se utiliza la siguiente instrucción desde la línea de comando

:set showmode

Para ver todas las opciones que puedes configurar del editor se utiliza la siguiente instrucción que te mostrará las opciones disponibles:

:set all

Archivo de configuración vi

Probablemente cambiarás algunas de las opciones pero al salir del editor y volver a entrar deberás volver a configurarlo. Para evitar esto puedes crear un archivo de configuración predeterminada de vi, este archivo deberá llamarse .exrc y podrá estar en el directorio en el que te posicionas para editar tu archivo (pwd) o en tu directorio $HOME. SI requieres varias configuraciones dependiendo del tipo de archivo puedes crear diferentes archivos de configuración de vi en diferentes carpetas de acuerdo a tus necesidades.

Un ejemplo de archivo de configuración vi  .exrc sería:

set showmode
set tabstop=2
set number
set ignorecase

Con esta configuración se predetermina que el editor de texto vi tenga los siguientes parámetros: para

  • que muestre el modo en el que se encuentra,
  • que la dimensión del tabulador sea de 2 caracteres,
  • que muestre los números de línea y,
  • que en las búsquedas no haga distinción entre mayúsculas y minúsculas. 

Abreviaturas

Las abreviaturas en el editor vi nos ayudan a poder escribir sólo la abreviatura (o un texto específico) para que sea reemplazada automáticamente con algún otro texto. La sintaxis para registrar la abreviatura es la siguiente:

:ab [abrv] [texto completo]

Por ejemplo, si tuvieras que escribir en un documento de forma muy repetitiva “Tutoriales y trucos de computación” podrías hacerlo mediante una abreviatura, utilizando el siguiente comando

:ab 1ttc Tutoriales y trucos de computación

De esta forma cada vez que escribas el texto 1ttc en tu documento este será reemplazado por “Tutoriales y trucos de computación”.

Cada vez que inicias una sesión de vi tendrías que definir las abreviaturas debido a que al cerrar el editor se pierden. También pueden ser incluidas en el archivo .exrc


Instrucciones básicas para editar un archivo

Una vez que entraste a tu archivo seguramente querrás comenzar a escribir texto, para lo cual será necesario entrar a modo edición, estando en modo comando y tecleamos la letra i (únicamente la letra, sin enter) aunque a simple vista parece que no ha pasado nada, con esto entraste al modo edición y podrás comenzar a escribir el texto del archivo.

 

Si activaster el parámetro showmode aparecerá en la parte de abajo del editor una indicación señalando que se encuentra en el modo iinsertar (INSERT MODE

Para salir del modo edición presiona la tecla Esc y estarás nuevamente en el modo comando.

Ahora, escribamos un texto en el archivo para poder utilizarlo, entra al modo edición y escribe el siguiente texto:

Aprender a utilizar bien el editor de texto vi es muy útil cuando
queremos editar un texto, como un programa o una pagina web ,
o un archivo de configuración en el sistema operativo unix. (Enter)

Si uno aprende a utilizarlo a un buen nivel, la escritura se
vuelve una experiencia cada vez más fascinante, por la inumerable
cantidad de funciones que este editor tiene.(Enter)

Por eso es importante saber utilizar vi(Enter)

(Esc)

Con este último (Esc) salimos del modo edición.

Desplazándose por el archivo

Para realizar el desplazamiento a través del archivo podemos realizarlo de diferentes formas, ya sea por caracter, por línea o por palabra. Los comandos básicos para desplazarse son los siguientes:

  • h, l un caracter hacia la izquierda o derecha, respectivamente
  • j, k una línea hacia abajo o arriba, respectivamente
  • w al principio de la siguiente palabra
  • e al final de la siguiente palabra
  • b al principio de la palabra anterior
  • G al final del archivo
  • gg al princpio del archivo
  • :n a la línea número n

Comencemos a desplazarnos a través del archivo. Vayamos a la primera linea y posicionemos el cursor en la letra A de la palabra Aprender, una vez posicionados ahí tecleamos el siguiente comando:

3w    (recuerda que como estamos en modo comando, no verás algún cambio cuando escribas el número 3, pero al escribir la w el cursor se moverá 3 palabras a la derecha y se posicionará sobre la b de la palabra bien.

Cambiar una palabra (cw

Supongamos que queremos cambiar la palabra bien por correctamente tecleamos la siguiente instruccion en modo comando:

cw con esto entramos al modo edición para reemplazar la palabra y escribimos la palabra correctamente(Esc). Habrás notado que al dar el comando cw se escribió un signo $ al final de la palabra bien, esto significa que esa es la palabra que será reemplazada.

Cortar y pegar 

Ahora, nos posicionamos en la última línea, (lo podemos hacer con el comando :3 que indica que vaya a la línea número 3 y ejecutamos el comando dd con lo que se borra la línea y la podemos pegar posicionándonos en la letra S del parrafo: Si uno apren... y ejecutamos el comando P (mayúscula) para insertarlo arriba del parrafo en el que nos encontramos.

Copiar y pegar 

La función para copiar y pegar es muy similar al a anterior, con la diferencia que para copiar una línea sin borrarla se utiliza el comando yy


Referencia de comandos 

Esta es una lista de los comandos más utilizados en el editor Vi, aunque hay muchos más estos en un principio te serán muy útiles.

 

:w    :w! Guardar (con ! guardar sin mostrar mensaje de advertencia)
:q    :q! Salir.   (con ! salir sin mostrar mensaje de advertencia)
:wq  :wq! Guardar y salir  (con ! sin mostrar mensaje de advertencia)
:x    :x!  Guardar y salir  (con ! sin mostrar mensaje de advertencia)
/[cadena] Busca cadena en el documento.
n Encontrar el siguiente (después de una búsqueda).
N Encontrar el anterior (después de una búsqueda).
i Pasar a modo edición (Inserta texto antes del cursor).
I Pasar a modo edición (Inserta texto al principio de la línea).
a Pasar a modo edición (Inserta texto después del cursor).
A Pasar a modo edición (Inserta texto al final de la línea).
h Moverse un caracter hacia la izquierda.
j Moverse una línea hacia abajo.
k Moverse una línea hacia arriba.
l Moverse uncaracter hacia la derecha.
w   W Moverse una palabra a la derecha.
cw Cambiar una palabra
dd Quitar una línea.
dw Quitar una palabra.
p Pegar después del cursor (o en la línea de abajo).
P Pegar antes del cursor (o en la línea de arriba).
D Cortar de la posición del cursor al final de la línea.

 


Para profundizar en el conocimiento del editor vi puedes visitar alguna de estas páginas:

Vi Lovers Home: (En inglés) Aquí hay cantidad de manuales y tutoriales de vi en todos los niveles. Incluso hay versiones de Vi para otros sistemas operativos como Windows, Mac y OS/2.

También en esta página hay una referencia en inglés bastante amplia de los comandos de vi.