| Las
páginas del Albergue
|
Aclaraciones necesarias:
Si Ud. es un usuario del MS-DOS y/o el MS-Windows 3.x, le recuerdo, por
si no lo sabe aún, que el UNIX, como el Windows 9.x y otros sistemas
operativos, hace diferencia entre las mayúsculas y las minúsculas,
por lo que, antes de internarse en este interesante ambiente, le recomiendo
tenerlo en cuenta.
Por otro lado, esto no intenta ser un manual sobre el vi (ya que hay gente
que ha escrito libros enteros sobre su uso) sino una simple enumeración
de los comandos y las opciones más simples que nos permite este
programa. Para mayor información te sugiero la lectura de los libros
y manuales relativos al tema.
Los diversos comandos y opciones que detallo a continuación los
he probado personalmente en las versiones UNIX V Release 4 (de Unisys)
y HP-UX versión 9.0, 10.0 y 11.0 (de Hewlett Packard). Agradeceré
cualquier sugerencia, crítica o corrección que me puedas
hacer llegar para mejorar esta página o cualquier otra que forme
parte de mi Albergue Transitorio de Ideas. Desde ya, muchas gracias.
Supongamos que usted tiene ante sus ojos una de las tantas
versiones del UNIX sin interfaz gráfica. Y supongamos que necesita
editar un archivo de texto. Una de las primeras cosas que puede intentar
es ejecutar el siguiente comando:
vi archivo
Si el sistema le responde, será un afortunado usuario
del vi (si no se ejecuta este programa, lamento informarle que deberá
usar el ed).
El vi es un editor de textos. Se puede observar en la pantalla una ventana
del archivo que se esta editando, y los cambios que se hagan se veran
en pantalla.
La sintaxis es:
vi archivo y el archivo se editará en pantalla.
Para las distintas opciones que iré detallando
más abajo, hay que apretar primero Esc, tanto para comenzar
a usar la opción como para terminar la anterior.
Volver arriba
Para insertar:
| I |
Inserta texto al comienzo de la línea. |
| a |
Inserta texto despues del cursor. |
| A |
Inserta texto al final de la línea. |
| o |
Inserta lineas de texto despues de la línea
actual. |
| O |
Inserta lineas de texto antes de la línea
actual. |
Volver arriba
Para hacer correcciones:
| x |
Borra un caracter. |
| nx |
Borra n caracteres. |
| rx |
Reemplaza el caracter en donde esta el cursor por
X. |
| dw |
Borra una palabra. |
| ndw |
Borra n palabras. |
| dd |
Borra una línea. |
| ndd |
Borra n líneas. |
| %d |
Borra todo desde la primera línea hasta el
final (es igual a :1,$d) |
| D |
Borra lo que esta entre el cursor y el final de la
línea. |
| cw |
Cambia una palabra por otra. |
| cc |
Cambia una linea por otra. |
| R |
Reemplaza el caracter por una cadena finalizada con
Esc. |
| S |
Reemplaza la línea. |
Volver arriba
Movimientos:
| Ctrl-d |
Scroll down. |
| Ctrl-u |
Scroll up. |
| Ctrl-e |
Sube una línea. |
| Ctrl-y |
Baja una línea. |
| Ctrl-f |
Próxima página (Forward). |
| Ctrl-b |
Página previa (Backward). |
| w |
Avanza el cursor a la proxima palabra. |
| b |
Retrocede el cursor a la palabra anterior. |
| e |
Mueve el cursor al final de la palabra. |
| ^ |
Mueve el cursor al principio de la línea. |
| $ |
Mueve el cursor al final de la línea. |
| + |
Mueve el cursor al principio de la línea siguiente. |
| - |
Mueve el cursor al principio de la línea anterior. |
| H |
Mueve el cursor a la primera línea de la pantalla
(Home). |
| M |
Mueve el cursor a la mitad de la pantalla. |
| L |
Mueve el cursor a la última línea de
la pantalla. |
| númeroG |
Mueve el cursor a cualquier línea del archivo
(10G a la línea 10, G al final del archivo). |
| Ctrl-G |
Muestra nombre del archivo, número de línea,
cantidad de líneas, etc). |
Volver arriba
Salidas:
| :x,y w archivo |
Escribe las líneas entre x e y en el archivo
dado. |
| :w |
Graba. |
| :w archivo |
Graba con ese nombre de archivo. |
| :q |
Sale (antes se debe grabar). |
| :q! |
Sale sin grabar los cambios. |
| :wq |
Graba y sale. |
| :x |
Graba y sale. |
| :zz |
Graba y sale. |
| :e! |
Recupera lo ultimo que se hizo (Undo total). |
| :e archivo |
Abre un segundo archivo sin cerrar el que tenemos
en pantalla. |
| :e# |
Vuelve al primer archivo. |
Volver arriba
Mover y pegar texto:
| :r archivo |
Lee un archivo y lo pega. |
| nyy |
Copia n líneas. |
| y |
Guarda texto en un buffer sin nombre. |
| ytx |
Guarda en un buffer el texto que esta entre el cursor
y el caracter x. |
| Y |
Guarda en un buffer la línea completa. |
| numero Y |
Guarda en un buffer el numero de líneas solicitado. |
| p |
Coloca lo que está en el buffer despues del
cursor. |
| P |
Coloca lo que está en el buffer antes del
cursor. |
Se puede poner nombre al buffer precediendo el comando
por " y cualquier letra. Se pueden abrir hasta 9 buffers.
Volver arriba
Repetir y deshacer cambios:
| u |
Deshace el último cambio. |
| U |
Vuelve la línea a su estado original. |
| . |
Repite el ultimo cambio. |
| t |
(to) Hasta (sin incluír). |
| dtx |
Borra desde el cursor hasta el caracter x. |
| f |
(find) Busca la primera instancia del caracter. |
| dfx |
Borra x solo en la línea. |
Volver arriba
Comandos desde vi:
| :! comando |
Ejecuta el comando. |
| :!ls -l |
Ejecuta el comando y lo lee. |
| :r! comando |
Lee la salida del comando. |
| :& |
Repite el último comando :S efectuado. |
Volver arriba
Sustituciones:
| :S/vieja cadena/nueva cadena/opciones |
Sustituye una cadena por otra. Si apretamos n, sustituye
la siguiente cadena vieja por la nueva. |
Volver arriba
Opciones:
| /g |
Cambia todas las apariciones de la vieja cadena en
la línea. |
| /c |
Solicita confirmación de cada cambio. |
| /p |
Imprime las líneas corregidas. |
| /gc |
Lo hace todo globalmente pero pide confirmación ante cada sustitución. |
| :& |
Repite el último comando :S efectuado. |
También se puede dar la orden como una expresión
regular (ver expresiones regulares), por ejemplo así:
:1,$ s/cadena vieja/cadena nueva/gc
Donde 1,$ le dice que lea el texto desde el primer
caracter hasta el final ($) y que vaya sustituyendo a la cadena
vieja por la cadena nueva, pero pidiendo confirmación cada vez
que lo vaya a hacer.
Volver a la página de Linux y UNIX.
Volver arriba |