Publicado el 8 de Junio del 2019
826 visualizaciones desde el 8 de Junio del 2019
215,2 KB
12 paginas
Creado hace 10a (02/10/2014)
¿Cómo usar VI?
Uso básico de vi .
El editor vi es un editor de texto de pantalla completa que maneja en
memoria el texto entero de un archivo. Es el editor clásico de UNIX; está en
todas las versiones. Puede usarse en cualquier tipo de terminal con un
mínimo de teclas; esto lo hace difícil de usar hasta que uno se acostumbra.
Existe un editor vi ampliado
llamado vim que contiene facilidades
adicionales, así como diversas versiones del vi original. En todos los casos, el
conjunto de comandos básicos es el mismo.
Existen en UNIX otros editores más potentes y versátiles, como emacs, que
provee un ambiente de trabajo completo; también versiones fáciles de
manejar como jove o pico, o aún mínimas e inmediatas como ae. En
ambiente X-Windows hay muchos editores amigables, fáciles de usar y con
múltiples capacidades. No obstante, vi está en todos los UNIX, requiere
pocos recursos, se usa mucho en administración, para programar y en
situaciones de emergencia. En casos de roturas de discos, corrupción de
sistemas de archivos, errores en el arranque y otras catástrofes, puede ser el
único editor disponible. Como la mayoría de las configuraciones en UNIX se
manejan editando archivos, disponer de esta capacidad es esencial en la
administración de un sistema.
Modos de vi .
Existen tres modos o estados en vi :
• Modo comando: las teclas ejecutan acciones que permiten
desplazar el cursor, recorrer el archivo, ejecutar comandos de manejo
del texto y salir del editor. Es el modo inicial de vi.
• Modo texto o modo inserción: las teclas ingresan caracteres en el
texto.
• Modo última línea o ex: las teclas se usan para escribir comandos en
la última línea al final de la pantalla.
Guía de supervivencia.
Con unos pocos comandos básicos se puede ya trabajar en vi editando y
salvando un texto:
vi arch1
Arranca en modo comando editando el archivo arch1
i
a
ESC
x
dd
Inserta texto a la izquierda del cursor
Agrega texto a la derecha del cursor
Vuelve a modo comando
Borra el carácter bajo el cursor
Borra una línea
h o flecha izquierda Mueve el cursor un carácter a la izquierda
j o flecha abajo
Mueve el cursor una línea hacia abajo
k o flecha arriba
Mueve el cursor una línea hacia arriba
l o flecha derecha Mueve el cursor un carácter a la derecha
:w
:q
Salva el archivo (graba en disco)
Sale del editor (debe salvarse primero)
Uso avanzado de vi .
Invocación de vi .
vi
Abre la ventana de edición sin abrir ningún archivo.
vi arch1
Edita el archivo arch1 si existe; si no, lo crea.
vi arch1 arch2
Edita sucesivamente los archivos arch1 y luego arch2.
vi +45 arch1
Edita el archivo arch1 posicionando el cursor en la línea 45.
vi +$ arch1
Edita el archivo arch1 posicionando el cursor al final del archivo.
vi +/Había arch1
Edita el archivo arch1 en la primera ocurrencia de la palabra "Había".
Cambio de modo.
comando a texto:
Teclas de inserción i I a A o O, o
Tecla de sobre escritura R.
texto a comando:
Tecla ESC.
comando a última línea:
Teclas: /?
última línea a comando:
Tecla ENTER (al finalizar el comando), o
Tecla ESC (interrumpe el comando).
Confundir un modo con otro la de mayor dificultades para el
manejo de vi. Puede activarse un
indicador de modo
escribiendo
:set showmode
Esto hace aparecer una leyenda que indica si se está en modo
comando o inserción.
Modo Comando.
El editor vi, al igual que todo UNIX, diferencia mayúscula y minúscula.
Confundir un comando en minúscula digitando uno en mayúscula
suele
tener consecuencias catastróficas. Se aconseja evitar
sistemáticamente el uso de la traba de mayúsculas; mantener el
teclado en minúsculas.
Números multiplicadores.
Muchos comandos aceptan un número multiplicador antes del
comando. La acción es idéntica a invocar el comando tantas veces
como indica el multiplicador. Ejemplos:
10j
En modo comando avanza 10 líneas;
5Y
Copia 5 líneas y las retiene para luego pegar.
Ejemplos de manejo.
Los siguientes ejemplos de manejo asumen que el editor se encuentra
en modo comando.
flechas
Mueven el cursor (si el terminal lo permite)
h j k l
Mueven el cursor (igual que las flechas)
ItextoESC
Inserta la palabra "texto" y vuelve a comando
x
dw
dd
Borra el carácter sobre el cursor
Borra una palabra
Borra una línea
3dd
Borra las 3 líneas siguientes
u
ZZ
Deshace último cambio
Graba cambios y sale de vi
:q!ENTER
Sale de vi sin grabar cambios
/expresiónENTER Busca la expresión indicada
3Y
Copia 3 líneas para luego pegar
:6r arch3
Inserta debajo de la línea 6 el archivo arch3
Movimiento del cursor:
flechas Mover en distintas direcciones
h o BS Una posición hacia la izquierda
l o SP Una posición hacia la derecha
k o - Una línea hacia arriba
j o + Una línea hacia abajo
$
0
Fin de línea
Principio de línea
1G Comienzo del archivo
G
Fin del archivo
18G Línea número 18
Ctrl-G Mostrar número de línea actual
w Comienzo de la palabra siguiente
e
E
b
^
%
H
L
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
M Al medio de la pantalla
23| Cursor a la columna 23
Control de pantalla.
Ctrl-f Una pantalla adelante
Ctrl-b Una pantalla atrás
Ctrl-l Redibujar la pantalla
Ctrl-d Media pantalla adelante
Ctrl-u Media pantalla atrás
Ingreso en modo texto:
i insertar antes del cursor
I insertar al principio de la línea
a insertar después del cursor
A insertar al final de la línea
o abrir línea debajo de la actual
O abrir línea encima de la actual
R sobrescribir (cambiar) texto
Borrar
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
Copiar y pegar
Y o yy
copiar línea
P
p
yw
y$
ayy o
aY
pegar antes del cursor
pegar después del cursor
copiar palabra
copiar de cursor a fin de línea
copiar línea en buffer llamado 'a'
a' "ayw copiar palabra en buffer llamado
ap
aP
bdd
bdw
pegar desde buffer 'a', a la derecha del cursor
pegar desde buffer 'a', a la izquierda del cursor
borrar línea y guardar en buffer 'b'
borrar palabra y guardar en buffer 'b'
Búsqueda
buscar hacia adelante cadena de caracteres
'str'
buscar hacia atrás cadena de caracteres 'str'
Repetir último comando / o ?
repetir último comando / o ? para el otro lado
buscar el siguiente carácter 'c' en la línea
buscar el anterior carácter 'c' en la línea
ir al carácter anterior al siguiente 'c'
ir al carácter posterior al precedente 'c'
repetir el último comando f, F, t, o T
último comando f, F, t, o T para el otro lado
/str
?str
n
N
fc
Fc
tc
Tc
;
,
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.
Reemplazo
Estos comandos admiten multiplicadores: un número delante del
comando. Al dar un comando de reemplazo el editor coloca un
símbolo $ en donde termina el pedido de reemplazo. El usuario escribe
normalmente, sobrescribiendo, hasta donde necesite, y sale con ESC.
Estos comandos admiten multiplicadores: 3cw abre un área de
reemplazo para 3 palabras.
reemplaza caracteres
reemplaza palabras
reemplaza hasta el fin de línea
reemplaza desde el comienzo de línea
c
cw
C o c$
c0
Otros
J
ZZ
u
U
unir dos líneas en una
grabar cambios si los hubo y salir
deshacer última acción
deshacer todos los cambios en una
línea
Modo Texto.
BS
ESC
borrar carácter hacia la izquierda
pasar a modo comando
Modo ex o última línea.
:q
:q!
:w
:w arch1
:wq
:r arch2
:e arch2
:e! arch2
:r!
salir si no hubo cambios
salir sin guardar cambios
guardar cambios
guardar cambios en archivo
arch1
guardar cambios y salir
insertar un archivo
editar un nuevo archivo
idem sin salvar anterior
comando
:shell
insertar salida de comando
salir al shell (vuelve con exit)
Mover
:1 mueve a línea 1
:15 mueve a línea 15
mueve a última
línea
:$
Opciones
:set
:set nu
:set nonu
cambio de opciones
mostrar números de línea
no mostrar números de línea
:set showmode mostrar modo actual de vi
:set noshowmode no mostrar modo actual de vi
Reemplazo
La sintaxis del comando de búsqueda y reemplazo es la siguiente:
:<desde>,<hasta>s/<buscar>/<reemplazar>/g
<desde> , <hasta> indican líneas en el archivo; <buscar> y <reemplazar> son
cadenas de caracteres o expresiones regulares; / es un separador, s
(sustituir) y g (global) son letras de comando para el manejo de
expresiones regulares.
: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 5a. línea.
Tipo de terminal.
vi es i
Comentarios de: Cómo usar VI (0)
No hay comentarios