Comandos básicos del editor de textos vi

Editor vi

vi (pronunciado ube-i) es el editor estándar de UNIX. El interés de aprender a manejar este editor es que en cualquier máquina UNIX tendremos al menos esta herramienta para editar ficheros. vi facilita 20 líneas en pantalla para realizar la edición. vi es un editor que, en un momento dado, se encuentra en uno de dos modos básicos de operación: modo de comandos y modo de edición.

El modo por defecto es el modo de comandos. En este modo no se puede realizar la edición del texto. vi espera al comando apropiado antes de realizar una operación. En general, vi volverá al modo de comandos después de ejecutar un comando.

La ventaja de este modo de trabajar es que se pueden ejecutar comandos desde ficheros, y los documentos pueden ser formateados o reestructurados simplemente ejecutando comandos de vi.

Si al presionar ESC el terminal emite un pitido quiere decir que estamos en modo de comandos.

Iniciando vi

Para comenzar a usar vi, teclear

Este comando inicia el editor y, como el fichero no existe todavía, lo crea para ser editado. El editor está ahora en modo de comandos esperando por un comando.

Moviendo el cursor

Las siguientes teclas controlar el movimiento del cursor.

Cuando se carga vi con un nuevo fichero, el cursor está en la esquina superior izquierda de la pantalla, y no puede ser movido con las teclas de cursor.

Modo de entrada de texto (añadir, insertar)

Borrando y cambiando texto

Los tres comandos más utilizados para alterar el texto son

Estos tres comandos son ejecutados en el modo de comandos, y vuelven al modo de comandos después de ejecutarse.

Deshaciendo cambios

Hay veces que se realizan cambios y nos damos cuenta inmediatamente que hemos cometido un error. El editor vi facilita mecanismos para deshacer acciones de comandos previos.

El comando u deshace el comando previo.

El comando U deshace todos los cambios realizados en la línea actual.

Guardando cambios y permaneciendo en vi

Es muy recomendable guardar los cambios que se van realizando de una forma regular. Para ello se utiliza

Si decides que no quieres sobreescribir el fichero que estás editando, sino que quieres guardar los cambios como un fichero nuevo, añade al comando :w el nombre del nuevo fichero,

Abandonando vi

Para dejar vi se utiliza,

Comandos adicionales para posicionamiento del cursor

Además de las teclas h, j, k, l existen cuatro más:


Scroll de pantalla

Los comandos para avanzar una pantalla arriba y abajo (12 líneas) son

Para ficheros muy largos, se puede ir a una línea del texto

Para posicionar el curso en la última línea del fichero, teclea

Para posicionar el cursor al comienzo del fichero, teclea

El siguiente comando muestra el número de línea actual

Búsqueda

Otro método de posicionarse dentro de un fichero es buscando una cadena de caracteres. En el modo de comandos, cualquier cadena de caracteres precedida por / significa el comando de búsqueda hacia adelante. El cursor se posiciona en la primera ocurrencia de dicha cadena.

El comando n busca hacia adelante la siguiente ocurrencia.

Para buscar hacia atrás, se utiliza el comando ?

Borrar texto

Ya se vio anteriormente el comando dd para borrar la línea actual.

El comando dw borra la palabra actual. Nótese que el comando de borrado comienza por d, seguido por el ámbito de aplicación (d para una línea, w para una palabra (word en inglés)).

Quitar y poner

Cuando se borra algo, es almacenado en un buffer temporal. El contenido de este buffer puede ser accedido y 'puesto' o pegado en cualquier sitio del texto.

Para recuperar el último texto borrado, se usa el comando p

nyw guarda en la memoria intermedia n palabras contadas desde la posición del cursor.
y$ guanda en la memoria intermedia desde la posición del cursor hasta el final de la línea.
yy guarda en la memoria intermedia la línea entera en la que se encuentra el cursor.
yn guarda en la memoria intermedia n+1 líneas desde la línea actual.