siguiente arriba anterior
Siguiente: Exámenes propuestos Arriba: raiz Anterior: Ejercicios

Resumen del mandatos de vi

Invocación de vi
vi Editar un texto sin nombre archivo asociado
vi archivo Editar archivo (Nuevo o no)
vi lista de archivos Editar lista de archivos
vi +n archivo Editar archivo en la línea n
vi +/txt archivo Editar archivo en la 1ª línea donde aparece txt

Desplazarse en el documento poco a poco
$\leftarrow$ o h un carácter hacia la izquierda
$\downarrow$ o j un carácter hacia abajo
$\uparrow$ o k un carácter hacia arriba
$\rightarrow$ o l un carácter hacia la derecha

Desplazarse en el documento más rápido
0 Comienzo de línea
$ Final de línea
w Comienzo siguiente palabra (word)
b Comienzo de la palabra actual (back)
e Final de la palabra actual (end)
H Esquina superior izquierda de la pantalla (home)
L Esquina inferior izquierda de la pantalla (last)
^u Subir pantalla (up)
^d Bajar pantalla (down)
^b Retroceder página (back)
^#b Retroceder página # líneas (back)
^f Avanzar página (forward)
^#f Avanzar página # líneas (back)
#G Salta a la #-ésima línea (go)
1G Salta a la primera línea
$G Salta a la última línea
z Hacer la línea actual la superior de la pantalla
zz Hace la línea actual la central de la pantalla
z- Hace la línea actual la última de la pantalla
fcar Busca el carácter car (hacia delante)
Fcar Busca el carácter car (hacia atrás)

Marcas sobre el documento
mcar Marca la línea actual con un carácter (a-z)
'car Mueve a la línea marcada con carácter (a-z)

Insertar texto
i Insertar (delante del cursor)
I Insertar al principio de la línea
a Añadir (detrás del cursor)
A Añadir al final de la línea
o Insertar una línea debajo de la actual (open)
O Insertar una línea encima de la actual (open)

Borrar texto
x Borrar caracter actual
X Borrar caracter anterior
dd Borrar línea actual (delete)
D Borrar hasta final de línea (delete)
dCmdMov Borrar hasta la posición indicada por el mandato de movimiento CmdMov
dw Borrar palabra (delete word)

Cambiar texto
rcar Reemplazar el caracter actual por car ( replace)
R Reemplazar texto desde la posición del cursor
s Substituir el caracter actual por texto a insertar
S Substituir la línea actual
C Cambiar hasta el final de la línea
cCmdMov Cambiar hasta la posición indicada por el mandato de movimiento CmdMov
cw Cambiar palabra (change word)
J Unir a la línea actual la siguiente (join)

Copiar y pegar
CmdBorrado Cortar (El último borrado pasa automáticamente al búfer
yy Copiar en el búfer la línea actual
#yy Copiar en el búfer # línea desde la actual
yCmdMov Copiar en el búfer hasta la posición indicada por el mandato de movimiento CmdMov (yank)
p Pega el búfer detrás de la posición del cursor
P Pega el búfer delante de la posición del cursor
"carCmdBorrado Cortar hacia el búfer de nombre car (a-z)
"carCmdCopia Copiar hacia el búfer de nombre car (a-z)
"carCmdPegado Pegar desde el búfer de nombre car (a-z)

Buscar y substituir
\% Busca el caracter delimitador ( ) [ ] { } que balancea el actual. Dentro de un entorno salta al delimitador inicial
/ExpReg Busca hacia delante la expresión regular ExpReg
?ExpReg Busca hacia atrás la expresión regular ExpReg
n Repite la última búsqueda (next)
N Repite la última búsqueda en el sentido contrario
:s/txt/txt2 Substituye el texto txt por txt2 la primera vez que aparece en la línea
:s/txt/txt2/g Substituye todas las apariciones de txt por txt2 en la línea (global)
:$\alpha,\beta$s/txt/txt2/g Substituye (idem) en el rango de líneas [$\alpha-\beta$]

Repetir y deshacer
. Repetir último mandato de actualización (Borrado/Inserción/Cambio)
u Deshacer último mandato de actualización
U Deshacer todos los cambios en la línea actual (ojo, en la línea actual)

Mandatos para el shell
:sh Invoca un nuevo shell. Al salir continua la edición
:!CmdShell Ejecuta el mandato CmdShell del shell
:r!CmdShell Ejecuta el mandato CmdShell del shell e inserta su salida en la posición del cursor
!!CmdShell Ejecuta un mandato CmdShell del shell e inserta su salida en la posición del cursor
:!! Repite el último comando ejecutado en un shell
:$\alpha,\beta$!CmdShell Ejecuta un comando del shell sobre el rango de líneas [$\alpha-\beta$]

Operaciones con ficheros
:r archivo Inserta el contenido de archivo debajo de la línea actual (read)
:w Graba las modificaciones efectuadas en el archivo actual (write)
:w archivo Escribe el texto actual en archivo (Sólo si no existiera)
:w! archivo Escribe el texto actual en archivo
:$\alpha,\beta$w archivo Escribe el rango de líneas [$\alpha-\beta$] en archivo
:e archivo Edita un archivo alternativo siempre que almacenemos el contenido del archivo actual o no haya cambios
:e! archivo Edita un archivo alternativo incondicionalmente
:e # Conmuta con el archivo alternativo, siempre que almacenemos el contenido del archivo actual o no haya cambios
:e! # Conmuta con el archivo alternativo incondicionalmente
:n o :next Editar el siguiente archivo de la lista de archivos que se le han dado al vi
:rew o rewind Volver al primer archivo de la lista
:q Salir siempre que almacenemos el archivo actual o no haya cambios (quit)
:q! Salir incondicionalmente
:wq o :x o ZZ Grabar cambios y salir (ZZ: dormir)

Control de comandos
<ESC> Finalizar/Anular mandato
^l Refresca (re-escribe) la pantalla
#Cmd Repite el mandato Cmd #-veces
:$\alpha,\beta$Cmd Ejecuta el mandato Cmd sobre el rango de líneas [$\alpha-\beta$]. ($\alpha$ y $\beta$ pueden ser número, mandato de movimiento, marcas, etc, donde $ indica la última línea del archivo y . indica la línea actual -donde está el cursor)
:set opción Activa la opción de vi correspondiente
:set noopción Desactiva la opción de vi correspondiente
:set all Muestra todas las opciones y sus valores
:set ai Modo de autoindentación
:set list Muestra caracteres de control que acompañan al texto
:set nu[mber] Muestra numeración de líneas
:set vb Substituye el pitido por una indicación visual
:set wrap Mostrar partidas las líneas que no caben en la pantalla
:set ... Véa usted mismo ;-)

(En la confección de esta página he contado con la colaboración de mi compañero Arturo González Escribano.
De los macros y otras cosas más, ya hablaremos otro día.)


siguiente arriba anterior
Siguiente: Exámenes propuestos Arriba: raiz Anterior: Ejercicios
Cesar Llamas Bello 2001-01-09