VI, ese gran editor. Ese gran desconocido…

Logo de vim
FacebooktwitterinstagramFacebooktwitterinstagram

Logo de vim

En la noche de los tiempos de Unix, cuando los editores de texto (ex y ed) eran en modo comando y la edición de un fichero una tarea que requería algunos conocimientos y más tila de la que un ser humano debe tomar, un señor llamado Bill Joy programó un interfaz en modo texto pero «VIsual». Esto es, un VIsual editor que en realidad usaba a los anteriormente mencionados. A que ahora ya sabéis de donde viene el nombre del editor? 😀

Desde entonces, vi está presente en todos los sabores de Unix y Linux e incluso en otros sistemas (hay vi para casi todo los sistemas que tengan línea de comandos e incluso una versión gráfica del mismo)

Este editor, es una herramienta muy potente, que debería de ser de obligado conocimiento para todos aquellos que se denominen «informáticos». Actualmente, se utiliza una versión mas moderna llamada «VIM» (VI IMproved) con soporte para coloreado de sintaxis, corrector de código fuente, macros, traductores, y muchas cosas más.

La interfaz de vi, es muy sencilla. No hay menús, no se usa el ratón y todo es a base de comandos y teclado. Vamos a ver un par de ejemplos del uso de vi, o el actual VIM.

Comenzamos con la edición de una lista de la compra:

$ vi lista

Esto nos sacará una pantalla como esta:

Captura de VIM

En esta pantalla, estaríamos directamente en modo comando.

Para comenzar editando este fichero, para añadir la lista de los artículos, hay que pulsar la tecla ‘insert’ o ‘i’ y pasaremos al modo edición. Si pulsásemos ‘insert’ otra vez, pasaríamos al modo ‘reemplazar’ y cualquier cosa que escribamos, reemplazaría a lo que estuviese debajo de lo que estamos escribiendo. También podemos volver al estado inicial con la tecla ‘ESC’ y reemplazar con ‘r’.

En el siguiente cuadro, vamos a ver la lista de artículos con los cuales vamos a trabajar durante el aprendizaje de vi

– Patatas
– Zanahorias
– Melón del malo
– Cerveza

 

 

 

Para escribirlo, pasamos al modo insertar o modo edición. Una vez que lo hayamos hecho, entraremos al modo comando otra vez (el inicial) y tendremos las siguientes posibilidades para movernos por el documento:

Tecla Acción
k Ir a la línea anterior.
j Ir a la línea siguiente.
h Ir a una posición a la izquierda.
l Ir a una posición a la derecha.
Control+b Ir a la pantalla anterior.
Control+f Ir a la pantalla siguiente.
0 Ir al inicio de la línea.
$ Ir al final de la línea.
b Ir a la palabra anterior.
w Ir a la siguiente palabra
g Ir al final del fichero.

 

Si queremos borrar un artículo, por ejemplo zanahorias, deberíamos situarnos a la altura de la línea y ejecutar dd esto es, pulsar 2 veces la letra d. Los comandos de borrado son:

Tecla Acción
d 2 veces Borra la línea actual.
dg Borra desde la posición actual, hasta el final de la línea.
dw Borra la palabra actual.
Numerod Borra el numero de líneas indicado.

 

Para cortar y pegar con vi, podemos utilizarlo en modo visual para seleccionar mas fácilmente el texto pulsando v en modo comando y seleccionando con las teclas de cursor o movimiento del cuadro .

Para cortar se utiliza cualquiera de los comandos anteriores de borrado hasta nueve borrados anteriores y se puede pegar el texto con numerodeborrado-p. Para copiar, se utiliza y, pudiendo utilizar yy para copiar la línea actual entera.

Podemos deshacer los cambios utilizando el carácter ~ o en modo comando, ‘u’.

El modo edición puede ser activado mediante varias formas. La más común es pulsar la tecla escape, aunque también podremos, estando en modo comando, podremos cambiarlo a:

Tecla Acción
i Inserta el texto en la posición actual.
a Inserta el texto detrás de la posición actual.
I Inserta el texto al principio de la línea.
A Inserta el texto al final de la línea.
O Inserta el texto en una línea nueva encima.
o Inserta el texto en una línea nueva abajo.
R Sobrescribe el texto.
r Sobrescribe un solo carácter.

 

Los comandos extendidos de vi, son ejecutados desde una interfaz de comandos especial. Esta se consigue pulsando ‘:’ en modo comando ordinario. Las opciones de este modo especial son:

Tecla Acción
:w nombre Escribe o renombra el fichero.
:q! Sale sin guardar cambios.
:q Salir. Si se han hecho cambios se pregunta si desea guardarlos.
:e! nombre Nuevo fichero, abandonando el abierto.
:e nombre Nuevo fichero.
:r nombre Inserta un  fichero.
:r!comando Inserta el resultado de un comando de shell.
:numerodelineas! comando Aplica un comando a determinado numero de líneas.
:!comando Ejecuta un comando de shell.
:shell Ejecuta una shell, para volver a vi, hay que escribir exit.
:help comando Muestra la ayuda de ese comando.
/cadena_de_texto Busca esa cadena de texto en el fichero abierto.

 

Todos estos comandos, los que van precedidos de ‘:’, en realidad no son parte de vi y no los ejecuta este, sino un editor llamado ex.

Hay versiones de vi, que reconocen la sintaxis de lo que estamos escribiendo y colorean los tags html, funciones en C, o comandos en scripts de shell.

En Unix hay otros editores de texto como pico, jed, emacs, joe, etc… pero no son vi 😉

Te recomiendo que le eches un vistazo al man de vi en Unix/Linux y a la web de VIM:

Saludos,

FacebooktwitterredditlinkedinmailFacebooktwitterredditlinkedinmail
mayo 29, 2011

Etiquetas: , , , , , , ,
  • Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *