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

vi nuevo_fichero

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.

vi +5 nombre_fichero       //Comienza la edición en la línea 5

vi + nombre_fichero        //Comienza la edición en la última línea

Moviendo el cursor

Las siguientes teclas controlar el movimiento del cursor.

k arriba
j abajo
h izquierda
l derecha

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)

a añade texto a partir del carácter en que está situado el cursor.
A añade texto al final de la línea actual.
i inserta texto a partir de la posición del cursor
I inserta texto al principio de la línea actual.
o inserta una línea debajo de la posición del cursor
O inserta una línea encima de la posición del cursor
:r fich  permite insertar el fichero fich tras la línea actual

Borrando y cambiando texto

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

x borra el carácter en el cursor
nx borra n caracteres hacia la derecha, incluido el que está sobre el cursor.
nX borra n caracteres hacia la izquierda.
r sustituye el carácter en el cursor
dd borra la línea en la que está el cursor
ndd borra n líneas hacia abajo incluyendo la que contiene el cursor.

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

:w

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,

:w nuevo_fichero2

Abandonando vi

Para dejar vi se utiliza,

ZZ Guarda los cambios en el fichero original, y vuelve al intérprete de comandos
:wq Igual que ZZ
:q! Abandona el editor, no guarda los cambios, y vuelve al intérprete de comandos

Comandos adicionales para posicionamiento del cursor

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

b mueve el cursor al comienzo de la palabra anterior
e mueve el cursor al final de la palabra siguiente
0 mueve el cursor al comienzo de la línea (cero)
$ mueve el cursor al final de la línea

 

Scroll de pantalla

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

ctrl-d una pantalla abajo
ctrl-u una pantalla arriba

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

3000G va a la línea número 3000

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

G

Para posicionar el cursor al comienzo del fichero, teclea

1G

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

ctrl-g

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.

vi cheatsheet

FUENTE: http://www.eis.uva.es/~fergay/III/enlaces/vi.htm

Publicado el 8 de abril de 2015 en Gnu/Linux y etiquetado en , , , . Guarda el enlace permanente. Deja un comentario.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: