Editar texto con Vi
Conceptos Claves
- Navegar un documento con vi.
- Utilizar los modos básicos de vi.
- Insertar, editar, borrar, copiar y encontrar texto.
Términos y utilidades
- vi
- /,?
- h, j, k, l
- i, o, ac, d, p, y, dd, yy
- ZZ,: w,: q,: e!
Modos de Vi
Modo Comando
También conocido como modo normal, este modo acepta comandos, los cuales son simplemente letras. Por ejemplo, el comando x borra el carácter abajo del cursor y el comando i nos hace ingresar a modo de inserción.
Modo Ex
Tipiando : (dos puntos), entramos en modo Ex, el cual nos permite ejecutar una serie de comandos un poco mas elaborados que el modo normal. Podremos ver los comandos que vamos ingresando por medio de un prompt en la ultima línea de la pantalla.
En ocasiones Vi no nos permite realizar ciertas operaciones, con el fin de proteger nuestros datos. Como salir del programa sin antes guardar los cambios efectuados en un archivo. Para forzar la ejecución del comando, se agrega el signo ¡ después del comando.
Modo Inserción
Es el modo que utilizamos para introducir texto nuevo, hay varios comandos que nos llevan de modo normal a modo inserción. Dependiendo de cómo y donde queramos insertar texto, ejecutaremos un comando distinto desde el modo normal.
Trabajar con archivos
Comando | Descripción |
---|---|
:e archivo | Abre un archivo nuevo. |
:e! archivo | Fuerza la apertura de un archivo nuevo, por mas que no hayamos grabado los cambios en el archivos que estamos trabajando actualmente. |
:w [nombre_de_archivo] | Guardar cambios en un archivo. Si no se especifica un nombre de archivo, Vi guarda como el nombre del archivo que estaba editando. Para guardar el archivo con un nombre diferente, especifique el nombre del archivo. |
:q | Salir de Vi. Si tiene cambios sin guardar, Vi se niega a salir. |
:q! | Fuerza la salida. Sale de Vi sin guardar los cambios. |
:wq | Guarda y sale. |
:x | Guarda y sale. |
ZZ | Guarda y sale. |
Moverse en el archivo
Estos comandos Vi y teclas funcionan tanto en modo comando y como en modo visual.
Comando | Descripción |
---|---|
k o flecha arriba | Una línea hacia arriba. |
j o flecha abajo | Una línea hacia abajo. |
h o Flecha izquierda | Se mueve a la izquierda un carácter. |
l o flecha derecha | Se mueve a la derecha un carácter. |
e | Se mueve a el final de una palabra. |
E | Para el final de una palabra delimitada por espacios en blanco. |
b | Para el comienzo de una palabra. |
B | Al principio de una palabra por espacios en blanco delimitados. |
0 | Para el comienzo de una línea. |
^ | Para el primer carácter distinto de espacio en blanco de una línea. |
$ | Para el final de una línea. |
H | Para la primera línea de la pantalla. |
M | a la línea central de la pantalla. |
L | Para el la última línea de la pantalla. |
N (N es el numero de línea) | Ir al número de línea n. Por ejemplo, para ir a la línea 42, escribe: 42 |
Insertar y sobrescribir texto
Comando | Descripción |
---|---|
i | Entra en modo insertar. |
I | Insertar al principio de la línea actual. |
a | Insertar después del cursor. |
o | Inserta una línea nueva abajo del cursor. |
O | Inserta una nueva línea arriba del cursor. |
C | Cambia el resto de la línea actual. |
r | Reemplaza un carácter. |
R | Entra en el modo de inserción, pero reemplaza caracteres en lugar de insertarlos (modo reemplazar). |
Tecla ESC | Salir de modo insertar/reemplazar y volver al modo comando. |
Eliminación de texto
Comando | Descripción |
---|---|
x | Elimina los caracteres bajo el cursor. |
X | Elimina los caracteres antes del cursor |
dd | Borra la línea actual. |
Modo visual
Comando | Descripción |
---|---|
v | Inicia el modo visual. |
V | Inicia modo visual de líneas. |
tecla ESC | Vuelve al modo comando. |
Edición de bloques de texto
Nota: los comandos Vi marcados con (V) funcionan en modo visual, cuando se ha seleccionado algún texto. Los otros comandos funcionan en el modo de comando, cuando no se ha seleccionado ningún texto.
Comando | Descripción |
---|---|
~ | Cambiar mayúsculas por minúsculas. Esto funciona tanto en modo visual como en modo comando. |
> (V) | Desplaza el texto a la derecha. |
<(V) | Desplaza el texto a la izquierda. |
c (V) | Cambia el texto resaltado. |
y (V) | Copia el texto resaltado. |
d (V) | Corta el texto resaltado. |
aa o :y o Y | Copia la línea actual. No es necesario resaltar en primer lugar. |
dd o :d | Corta la línea actual. No es necesario resaltar en primer lugar. |
p | Pega el texto que copio o cortó. Pega las líneas por abajo de la línea actual. |
P | Pega caracteres antes del cursor. Pega las líneas por encima de la línea actual. |
Deshacer y rehacer
Comando | Descripción |
---|---|
u | Deshace la última acción. |
U | Deshacer todos los últimos cambios que se realizaron en la línea actual. |
Ctrl + r | Rehacer. |
Buscar
Comando | Descripcion |
---|---|
/Patrón_de_búsqueda | Busca hacia delante el texto que concuerde con el patrón. |
?Patrón_de_búsqueda | Busca hacia atrás el texto que concuerde con el patrón. |
n | Salta a la próxima ocurrencia. |
N | Vuelve a la ocurrencia anterior. |
Ejemplos
Borrar todas la líneas que están comentadas:
Primero borramos todas las líneas comentadas con el siguiente comando ex:
:g/^#/d
Luego borramos las líneas en blanco:
:g/^\s*$/d