ARISTÓTELES - Ecom Chaco

Anuncio
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
EDITOR VI
El editor vi es el editor por excelencia de UNIX. Es bastante potente y complicado
de manejar a pleno rendimiento, debido a la gran cantidad de opciones que tiene,
pero es fácil dar los primeros pasos e ir avanzando poco a poco. Es difícil de
utilizar al principio, pero puede llegar a convertirse en el más cómodo y rápido.
En UNIX existen otros editores más potentes, con entornos de trabajo más
amigables, otros más sencillos de manejar, pero el único editor que está en todas
las versiones y se maneja igual es el vi.
La sintaxis del comando vi es, al igual que la de cualquier comando UNIX:
vi [opciones] archivo
Entre las opciones más importantes se pueden destacar:


-r : Recupera la copia del archivo que existe en los directorios temporales.
Es útil en caso de que se haya apagado el terminal sin haber salvado el
texto.
-c : Ejecuta el comando, de vi, que se indica a continuación. Es útil para
posicionarse en algún punto del archivo
En vi existen 3 modos de trabajo:



Modo comando: cada tecla tiene un significado, y se puede desplazar el
cursor, copiar, pegar, mover, borrar, etc. Hay que tener mucho cuidado,
pues un comando en minúsculas o en mayúsculas tienen efectos muy
diferentes.
Modo texto: se emplea para añadir o modificar el texto del documento.
Modo ex: inserción de comandos del editor de líneas ex. Se emplea para
cambios masivos en el documento.
Página 1 de 9
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
En las páginas siguientes se detallan los comandos más importantes de vi
clasificados según el modo en que se ejecutan y las tareas que realizan.
vi es independiente del tipo de terminal, pero la variable de ambiente TERM debe
estar fijada correctamente. Si no se conoce o no existe, en la base de datos de
terminales del sistema, el tipo exacto de terminal con el que se está trabajando, se
puede usar el tipo vt100 o el ansi (dan buenos resultados en la mayoría de los
terminales).
Para modificar el tipo de terminal se deberá teclear:
TERM=[tipo de terminal];export TERM
o directamente:
export TERM=[tipo de terminal]
Con algunos comandos, especialmente more y a veces vi, el terminal o el
emulador que se está usando pueden no responder bien, que no aparezcan los
Página 2 de 9
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
cambios que se realizan correctamente en la pantalla. En estos casos, puede
usarse Ctrl-l para refrescar la pantalla.
Un usuario puede generar bajo su directorio $HOME un archivo llamado .exrc, en
el que podrá adaptar el entorno del editor vi a su gusto. En este archivo se pueden
incluir:

Opciones set
set [opcion[=valor]]

Abreviaturas ab
ab [abr] [cadena]

Macros map.
map [Key|#n] [acción]
donde:



Key : expresa una letra especial (no utilizada en vi). Por ejemplo v, V, q, K,
Ctrl-A, etc. Las teclas correspondientes a las flechas se pueden definir
como macros si es que no se encuentran definidas por defecto.
n : expresa un número
acción : es un comando de vi, teniendo en cuenta que antes de teclear un
Escape o Return, o cualquier carácter de control hay que teclear Ctrl-v.
Tanto las opciones, como las abreviaturas y macros se pueden definir en modo ex
para la edición en curso, pero solo tendrán valor durante la edición actual, no
siendo válidas para las siguientes llamadas al comando vi. Por ello, para que
afecte a cualquier llamada del comando vi, será necesario insertarlas en el archivo
.exrc.
MODO TEXTO
Acceso a modo texto
i
Insertar antes del cursor.
I
Insertar al principio de la línea.
Página 3 de 9
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
a
Añadir después del cursor.
A
Añadir al final de la línea.
o
Abrir línea debajo de la actual.
O
Abrir línea encima de la actual.
R
Sobreescribir (cambiar) texto.
r
Sobreescribir el carácter sobre el que está el cursor.
c
Reemplaza caracteres.
cw
Reemplaza palabras.
C o c$
Reemplaza hasta el fin de línea.
c0
Reemplaza desde el comienzo de línea.
Los comandos de reemplazo admiten multiplicadores que consisten en un número
antecediendo al comando. Al dar un comando de reemplazo el editor coloca un
símbolo $ en donde termina el pedido de reemplazo. El usuario sobrescribe
normalmente hasta donde necesite, y sale con la tecla ESC. Estos comandos
admiten multiplicadores, por ejemplo 3cw abre un área de reemplazo para 3
palabras.
Otros
BS (Back Space)
Borrar carácter hacia la izquierda.
ESC
Salir de Modo Texto y pasar a modo comando.
MODO COMANDO
Algunos de estos comandos admiten multiplicadores, que consisten en un número
antecediendo al comando.
flechas
h ó BS (Back
Space)
Movimiento del cursor y Control de pantalla
Mover en distintas direcciones.
Una posición hacia la izquierda.
Página 4 de 9
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
l ó SP (Espacio)
kójó+
$
0 (Cero)
1G
G
18G
Ctrl-G
w
e
E
b
^
%
H
L
M
23|
Ctrl-f
Ctrl-b
Ctrl-l
Ctrl-d
Ctrl-u
Una posición hacia la derecha.
Una línea hacia arriba.
Una línea hacia abajo.
Fin de línea.
Principio de línea.
Comienzo del archivo.
Fin del archivo.
Línea número 18.
Mostrar número de línea actual.
Comienzo de la palabra siguiente.
Fin de la palabra siguiente.
Fin de la palabra siguiente antes de espacio.
Principio de la palabra anterior.
Primera palabra de la línea.
Hasta el paréntesis que aparea.
Parte superior de la pantalla.
Parte inferior de la pantalla.
Al medio de la pantalla.
Cursor a la columna 23.
Una pantalla adelante.
Una pantalla atrás.
Refrescar la pantalla.
Media pantalla adelante.
Media pantalla atrás.
Búsqueda
/str
Buscar hacia adelante cadena de caracteres 'str'.
?str
Buscar hacia atrás cadena de caracteres 'str'.
n
Buscar siguiente (si se usó /) o anterior (si se usó ?).
N
Buscar anterior (si se usó /) o siguiente (si se usó ?).
fc
Buscar el siguiente carácter 'c' en la línea.
Fc
Buscar el anterior carácter 'c' en la línea.
tc
Ir al carácter anterior al siguiente 'c'.
Página 5 de 9
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
Tc
Ir al carácter posterior al precedente 'c'.
;
Repetir el último comando f, F, t, o T.
,
último comando f, F, t, o T en sentido inverso.
La cadena a buscar en / o ? puede ser una expresión regular.
La acción de f, F, t y T alcanza sólo a la línea actual; si el carácter buscado no
está en esa línea el cursor no se mueve.
Borrar, Copiar y Pegar
x
Borrar carácter bajo el cursor.
dd
Borrar línea, queda guardada.
D
Borrar desde cursor a fin de línea.
dw
Borrar desde cursor a fin de palabra.
d$
Borrar desde cursor a fin de línea.
d0
Borrar desde cursor a principio de línea.
d)
Borra hasta el final del párrafo.
Y o yy
Copiar línea.
P
Pegar antes del cursor.
p
Pegar después del cursor.
yw
Copiar palabra.
y$
Copiar de cursor a fin de línea.
"ayy o "aY
Copiar línea en buffer llamado 'a'.
'a' "ayw
Copiar palabra en buffer llamado 'a'.
"ap
Pegar desde buffer 'a', a la derecha del cursor.
"aP
Pegar desde buffer 'a', a la izquierda del cursor.
"bdd
Borrar línea y guardar en buffer 'b'.
"bdw
Borrar palabra y guardar en buffer 'b'.
J
Unir la línea actual y la siguiente (suprimir el retorno de
Página 6 de 9
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
carro).
Otros
ZZ
Grabar cambios si los hubo y salir.
u
Deshacer última acción.
U
Deshacer todos los cambios en una línea desde que se posicionó
el cursor en ella.
.
Repetir el último comando.
MODO EX O ULTIMA LINEA
Generales
:q
Salir si no hubo cambios.
:q!
Salir sin guardar cambios.
:w
Guardar cambios.
:w arch1
Guardar cambios en archivo arch1.
:wq
Guardar cambios y salir.
:r arch2
Insertar un archivo.
:e arch2
Editar un nuevo archivo.
:e! arch2
Idem sin salvar anterior.
:r! comando
Insertar salida de comando.
:shell
Salir al shell (vuelve con exit).
:.=
Muestra el número de línea en que se halla en cursor.
Mover
:1
Mueve a línea 1.
:15
Mueve a línea 15.
Página 7 de 9
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
:$
Mueve a última línea.
Opciones, abreviaturas y macros
:set
Cambio de opciones.
:set nu
Mostrar números de línea.
:set nonu
No mostrar números de línea .
:set showmode
Mostrar modo actual de vi.
:set noshowmode No mostrar modo actual de vi.
:ab [abr] [cadena]
Cada vez que se teclee la cadena abr, ésta se expandirá
escribiendo cadena.
:ab
Muestra las abreviaturas creadas.
:una [abr]
Elimina la abreviatura abr.
:map [c] [accion]
Genera la macro c que ejecutará la acción indicada.
:map
Muestra las macros definidas.
Otros
:[desde],[hasta]
s/[buscar]/[reemplazar]/
Reemplaza todas la primera ocurrencia de la cadena
[buscar], en cada línea, por la cadena [reemplazar]
entre las líneas [desde] y [hasta] del archivo.
Reemplaza todas las ocurrencias de la cadena
:[desde],[hasta]
[buscar] por la cadena [reemplazar] entre las líneas
s/[buscar]/[reemplazar]/g
[desde] y [hasta] del archivo.
:[desde],[hasta] d
Borra las líneas comprendidas entre las líneas [desde]
y [hasta].
Ejemplos:
:1,$s/Martes/martes/g
Cambia Martes por martes en todo el archivo.
:.,5s/ayuda/&ndo/g
Cambia ayuda por ayudando desde línea actual
hasta la 5ª línea.
:.,$ d
Elimina todas las líneas desde la línea actual al
final del archivo.
:ab pp Hola Pepe
Cada vez que se teclee "pp " se expandirá en "Hola
Pepe".
Página 8 de 9
420304785.doc
http://club.telepolis.com/jagar1/Unix/Vi.htm
Página 9 de 9
Descargar