Oct 31, 2007

Comandos de vi

Invocación de vi

$vi Editar un texto sin nombre
$vi fichero Editar un fichero (Nuevo o no)
$vi fichero1 fichero2 ... Editar lista de ficheros
$vi +n fichero Editar fichero en la linea n
$vi +/txt fichero Editar fichero en la 1a linea donde aparece txt

Movimientos del cursor
↑k
← →
h ↓j l
0 Inicio de linea
$ Fin de linea
w Word: Avanzar palabra
b Back: Retroceder palabra
e End: Al final de palabra
H Home: Esquina sup. izq. de la ventana
L Last: Esquina inf. izq. de la ventana
^u Window up: Subir ventana
^d Window down: Bajar ventana
^b Page back: Retroceder p´gina
a
^f Page forward: Avanzar página
nG Go: Salta a la n-ésima linea

1G A la primera linea
$G A la ultima linea

zRet Hacer la linea actual la superior
zz Hacer la linea actual la central
z- Hacer la linea actual la ultima

fcar Buscar en la linea el carácter car (hacia delante)

Fcar Buscar en la linea el carácter car (hacia atrás)

Marcas
m(a-z) Marcar la linea actual con (a-z)
’(a-z) Mover a la marca (a-z)
Insertar texto
i Insertar (delante del cursor)
I Insertar al principio de la linea
a Añadir (detrás del cursor)
A A˜ adir al final de la linea
n
o Insertar una linea debajo de la actual
O Insertar una linea encima de la actual
Borrar texto
x Borrar caracter actual
X Borrar caracter anterior
dd Borrar linea actual
D Borrar hasta final de linea
dCmdMov Borrar hasta la posici´n del movimiento indicado
o
dw Borrar palabra
Cambiar texto
rcar Reemplazar el caracter actual por car
R Reemplazar texto desde la posici´n del cursor
o
s Substituir el caracter actual por texto a insertar
S Substituir la linea actual
C Cambiar hasta el final de la linea
cCmdMov Cambiar hasta la posici´n del movimiento indicado
o
cw Cambiar palabra
J Unir a la linea actual la siguiente
Copiar y pegar
CmdBorrado Cortar (El ultimo borrado pasa automáticamente al buffer)

yy Copiar en el buffer la linea actual
αyy Copiar en el buffer α lineas desde la actual
yCmdMov Copiar en el buffer hasta la posición del movimiento indicado
p Pega el buffer detrás del cursor

P Pega el buffer delante del cursor
"(a-z)CmdBorrado Cortar hacia el buffer de nombre (a-z)
"(a-z)CmdCopiar Copiar hacia el buffer de nombre (a-z)
"(a-z)CmdPegar Pegar desde el buffer de nombre (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 ultima b´ squeda
N Repite la ultima b´ squeda en el sentido contrario
:s/txt/txt2 Substituye el texto txt por txt2 la primera vez que aparece en la linea
:s/txt/txt2 /g Substituye todas las apariciones de txt por txt2 en la linea
:α, βs/txt/txt2 /g Substituye en el rango de lineas [α, β]
Repetir y deshacer
. Repetir ultimo comando de actualizaci´n (Borrado/Inserci´n/Cambio)
u Deshacer ultimo comando de actualizaci´n
U Deshacer todos los cambios en la linea actual
Comandos del shell
:sh Invoca un nuevo shell. Al salir continua la edici´n

:!CmdShell Ejecuta un comando del sistema operativo
:r!CmdShell Ejecuta un comando del S.O. e inserta su salida en la posici´n del cursor

!!CmdShell Ejecuta un comando del S.O. e inserta su salida en la posici´n del cursor

:!! Repite el ultimo comando ejecutado en un shell
´
:α, β!Cmd Ejecuta un comando del S.O. sobre el rango de lineas [α, β]
Operaciones con ficheros
:rfichero Inserta el contenido de fichero debajo de la linea actual
:w Graba las modificaciones efectuadas en el fichero
:wfichero Escribe el texto actual en fichero (Sólo si no existía)
:w!fichero Escribe el texto actual en fichero
:α, βwfichero Escribe el rango de lineas en fichero
:efichero Descartar el texto actual y editar fichero
:n[ext] Editar el siguiente fichero de la lista de argumentos
:rew[ind] Volver al primer fichero de la lista
:q Salir (si no hay cambios)
:q! Salir (sin grabar)
:wq Grabar cambios y salir
:x Grabar cambios y salir
ZZ Grabar cambios y salir


Control de comandos
Esc Finalizar/Anular comando
^l Refresca la pantalla
αCmd Repite el comando α-veces
:α, βCmd Ejecuta el comando sobre el rango de lineas [α, β]
(α y β pueden ser n´ mero, comandos de movimiento, marcas,...)
$ indica la ultima linea del fichero
. indica la linea donde est´ el cursor
set opci´n Activa la opci´n de vi correspondiente
set noopci´n Desactiva la opci´n de vi correspondiente
all Muestra todas las opciones y sus valores
ai Modo de autoindentaci´n o
list Muestra caracteres de control
nu[mber] Muestra numeraci´n de lineas
vb Sustituye el pitido por una indicaci´n visual
wrap Mostrar partidas las lineas que no caben en la pantalla
...


saludos.

No comments:

Post a Comment