Curso de Unix (Editor Vi)

EDITOR VI

 

ENTRADA AL EDITOR

$ vi               Edita un fichero sin nombre.
$ vi NOMNUEVO      Edita un fichero nuevo con nombre.
$ vi NOMVIEJO      Edita un fichero ya existente.
$ vi nom1 nom2     Edita varios ficheros simultáneamente.
$ vi +n nomviejo   Hará que n sea la línea actual cuando se edite el fichero.
$ vi +$ nomviejo   Coloca el cursor al final del fichero.
$ vi +orden fich   Hace que se ejecute la orden del editor antes de visualizar el fichero.
$vi +/palabra fich   Situa el cursor, al editar “fich”, en la primera ocurrencia de la palabra
especificada del fichero.

ALMACENAR, MOVERSE Y ABANDONAR EL EDITOR

:w                 Salva el contenido del texto visualizado en pantalla.
:w nomfich         Almacena el texto editado en un archivo con el nombre indicado.
:w>>nomfich        Añade el texto editado al archivo ya existente especificado.
:q                 Salida del fichero editado. Requiere haber salvado previamente con :w las
modificaciones realizadas.
:q!                Sale de la edición sin salvar el fichero editado.
:wq                Salva el fichero editado y luego sale de VI.
ZZ                 Hace lo mismo que :wq.
:n                 Visualiza el siguiente fichero de la cola.
:r nomfich         Añade el contenido de un fichero (nomfich) al texto editado, a partir de la
posición del cursor.
:rewind            Visualiza el primer fichero de los editados.

MOVIMIENTOS DEL CURSOR

nh                 Mueve el cursor n caracteres hacia la izda.
n ^h               Mueve el cursor n caracteres hacia la izda.
nl                 Mueve el cursor n caracteres hacia la dcha.
n <SPACE>          Mueve el cursor n caracteres hacia la dcha.
nW                 Mueve el cursor n palabras hacia la dcha. y lo sitúa en el primer caracter
de la palabra (teniendo en cuenta que una palabra será una serie de
caracteres hasta un espacio en blanco).
nB                 Mueve el cursor n palabras hacia la izda. y lo sitúa en el primer caracter de
la palabra.
n <CR>             Mueve el cursor n líneas hacia abajo y lo sitúa al comienzo de la línea.
nj                 Mueve el cursor n líneas hacia abajo y lo deja en la misma columna.
nk                 Mueve el cursor n líneas hacia arriba y lo deja en la misma columna.
G                  Mueve el cursor hasta el primer caracter de la última línea del fichero.
nG                 Mueve el cursor hasta el primer caracter de la enésima línea del fichero.
$                  Mueve el cursor al último caracter de la línea actual.
n$                 Mueve el cursor hasta el último caracter de la enésima línea del fichero.
0                  Mueve el cursor al primer caracter de la línea.
H                  Mueve el cursor al principio de la pantalla.
L                  Mueve el cursor al final de la pantalla.
M                  Mueve el cursor hasta la mitad de la pantalla.
^f                 Hace subir la pantalla (scroll down) (PAGE UP).

MOVIMIENTOS DEL CURSOR

^b              Hace bajar la pantalla (scroll up) (PAGE DOWN).
:nº             Situa el cursor en la línea indicada.
:+nº            Avanza el cursor n líneas hacia abajo a partir de la posición del cursor.
:-nº            Retrocede el cursor n líneas hacia arriba desde la posición actual del
cursor.

BORRAR TEXTO

nx              Borra n caracteres a partir de la posición actual del cursor.
ndW             Borra n palabras de la derecha del cursor.
ndB             Borra n palabras de la izquierda del cursor.
nS              Borra el contenido de n líneas a partir del cursor.
n dd            Borra n líneas enteras a partir de donde está el cursor.
D               Borra el resto de la línea a partir de la posición del cursor.

AÑADIR TEXTO

a               Añade texto después del cursor.
i               Inserta texto antes del cursor.
A               Añade texto al final de la actual línea.
I               Inserta texto al principio de la actual línea.
o               Abre una línea a continuación para insertar texto.
O               Abre una línea encima de la actual para insertar texto.

COPIAR Y MOVER TEXTO

n r car         Cambia los n primeros caracteres a partir del cursor por el caracter
especificado.
r               Permite reemplazar el caracter actual por otro que se teclee.
R               Permite entrar en modo sustitución de caracteres,permaneciendo sin variar
los caracteres de la línea que no se hayan sobreescrito.
C               Lo mismo que el anterior, pero aquellos caracteres de la línea que no se
hayan sobreescrito se borrarán (el resto de la línea no cambiado se borra).
J               Junta la línea actual con la siguiente eliminando el <CR> que las separa.
nY              Almacena temporalmente en un espacio de memoria (buffer) n líneas
desde la posición actual del cursor.
P               Inserta las líneas sacadas con Y, a partir de la línea actual.

RESTAURAR Y REPETIR CAMBIOS

.               Repite el último cambio realizado.
u               Restaura el último cambio realizado.

OPCIONES DE ENTORNO

: set nu        Visualiza en la pantalla los números de líneas.
: set nonu      Elimina de la pantalla los números de líneas.
: set list      Hace que se visualicen los caracteres de control (tabuladores, retornos de
carro, etc.)
: set nolist    Elimina la opción anterior.
: set wm=n      Establece el retorno automático de línea en la columna 80-n. (Para ponerlo
en la 50 habría que poner n=30).
: set wm=0      Elimina el retorno de línea automático.

BUSQUEDA, SUSTITUCION Y ELIMINACION

:/argumento/             Busca, a partir de la siguiente línea a la actual, la primera ocurrencia del
argumento, y se situa el cursor al comienzo de la línea donde se encuentre
el argumento.
:/^argumento/            Busca la ocurrencia en el principio de las líneas.
:/argumento$/            Busca la ocurrencia al final de las líneas.
:g/arg/d                 Elimina todas las líneas que contienen el argumento.
:g/^$/d                  Elimina todas las líneas vacías.
:s/textant/textnue/      Sustituye el texto antiguo por el texto nuevo.
:g/textant/s//textnue/g  Sustituye todas las ocurrencias de textoant por textonuevo.
:g/textant/s//textnue/gc Hace lo mismo que el anterior pero pidiendo confirmación. Se ha de
contestar y<CR>, en caso contrario no se sustituye.
:g/argumento/s/texto//g  Borra el texto en todas las líneas que contengan el argumento. Si no se
pone texto se borra la línea completa.

ESCAPAR AL SHELL DESDE EL EDITOR

:! orden                 Abandona el vi momentáneamente para ejecutar la orden. Para volver al
editor basta teclear <CR>.
:sh                      Ejecuta un shell nuevo apartando el vi. Se vuelve con exit o <^d>.
:r !orden                Lleva la salida standard de la orden al fichero.

Escribe un comentario