Índice
introduccion...
La primera vez que yo usé VI me sentí totalmente desconcertado, peor aún porque
lo usé desde una terminal en modo texto y no tenía ni idea de como empezar a
escribir. Se supone que al usar un editor de texto uno debería poder escribir
pero esta vez fue distinto, ya después aprendí sobre los distintos modos y a
usar el editor en sí y me di cuenta que para editar no hay editor que se le
compare aunque requiere cierto tiempo para aprenderse. Espero que este pequeño
tutorial les sea útil.
arrancando vim...
Vim se arranca llamando al comando para esto que es obviamente:
$ vi
Puede ser ese u otra variante como VIM (VI Improved o Vi mejorado), gvim que es
para las X. La cuestión es que nos encontraremos ante una pantalla como esta:
Gracias al cielo esta en español es lo que uno piensa, pero aún así ahí dice que
para salir hay que escribir ":q". ¿Eh? ¿No se supone que si escribo va a salir
en la pantalla? Pues no, en VIM existen varios modos de entrada, y son estos:
- Modo de inserción
- Modo Normal
- Modo Visual
- Modo de línea de comandos
El modo Normal es en el que te encuentras ahora, y es para dar los comandos en
el estilo del VI, que son generalmente de una letra, hay varias formas de entrar
al modo de inserción, presionando la tecla "i" le dices a VI que quieres
insertar y así entras al modo de inserción. Para salir de ahí presionas
la tecla Escape. Desde el modo normal, presionas ":" y entrarás al modo de línea
de comandos. Ahora para aclarar esto hagamos un ejemplo:
Suponte que estás en la pantalla que muestra la figura 1,
presionas "i" y entras en modo de insertar ahora escribes "Hola VIM", presionas
"Escape", estás en modo normal de nuevo y por último presionas ":w prueba.txt"
(el comando ":w" es para guardar) el resultado de este ejemplo es este:
De ahí presionas Intro y habras grabado el archivo prueba.txt.
comandos básicos...
Ahora que ya viste como se usa el vim, aquí te pongo una lista de los comandos principales:
Modo normal
Movimiento del cursor
h,j,k,l | izquierda, abajo, arriba, derecha |
0 | Mueve el cursor al comienzo de la línea |
$ | Mueve el cursor al final de la línea |
H | A la primera línea de la pantalla |
M | Al medio de la pantalla |
L | A a la última línea de la pantalla |
w | Al comienzo de la sgte. palabra |
W | Lo mismo que w, pero sin respetar signos de puntuación |
e | El final de la sgte. palabra. |
E | Lo mismo que e, pero sin respetar signos de puntuación |
b | Al comienzo de la palabra anterior |
B | Lo mismo que b, pero sin respetar signos de puntuación |
/búsqueda | A la sgte. aparición de búsqueda |
?búsqueda | A la aparición anterior de búsqueda |
n | Repite la búsqueda hecha con los comandos anteriores |
G | Ir a la última línea del texto |
(nro)G | Va a la línea que dice número, por ejm: 1G, va a la primera línea |
Inserción
i | Insertar donde está el cursor |
I | Insertar al principio de la línea |
o | Insertar abajo de la línea |
O | Insertar arriba de la línea |
a | Insertar después del cursor |
A | Insertar al final de la línea |
Edición
x | Borrar un caracter |
dd | Borrar una línea |
yy | Copiar una línea |
p | Pegar una línea/carácter que fue borrada o copiada |
D | Borrar hasta el final de la línea |
rc | Reempaza el caracter del cursor por "c" |
u | Deshacer el último comando |
J | Unir dos líneas |
ma | Marcar la línea con la letra "a" |
'a | Ir a la línea marcada con "a" |
>> | Recorrer la línea un "tab" hacía adelante |
(nro)(orden) | Repetir nro veces la orden. Ejm: "5dd" borrara 5 líneas, así como "5iHola(Escape)" escribira "HolaHolaHolaHolaHola" |
Modo línea de comandos
Archivo
:q | Salir |
:w nombre.archivo | guardar el archivo bajo el nombre nombre.archivo |
:wq | grabar y salir |
:e nombre.archivo | Abrir nombre.archivo para editar |
:s/buscar/remplazar/gc | Busca todas las ocurrencias de "buscar" en la línea y las reemplaza por reemplazar |
combinando órdenes...
Una de las mejores funciones de Vim es la de poder combinar los comandos de
edición con los comandos de movimiento, algo que acelera un montón la edición,
ya que da una flexibilidad increíble. Por ejm. (en modo normal) para borrar una palabra no tienes más que poner el cursor al comienzo y apretar "dw" que
borraría hasta el comienzo de la palabra sgte. o si quieres hasta el sgte
espacio, bastaría con un "dW". El comando "c" es para cambiar hasta donde se le
indique, "cw" cambia una palabra.
Otra combinación interesante que yo uso un montón para la edición de html, es
para cambiar el texto entre 2 tags: "c/<". El c es para cambiar, la "/" es
para que cambie hasta la siguiente aparción de <. Como ves esto es muy
versátil dando un sin fin de posibilidades, aquí te doy una lista de comandos
interesantes.
Comandos útiles de Vi
cw | Cambiar palabra |
dw | Borrar palabra |
d'a | Borrar hasta la línea marcada con "a" |
c/" | Cambiar el texto hasta las comillas |
xp | Intercambia dos caracteres: Ejm: "ga" "ag" |
ddp | Lo mismo que el anterior pero intercambia dos líneas |
dG | Borra hasta el final |
d(nro)G | Borra hasta la línea (nro) |
edición avanzada con vi...
La edición avanzada con vim abarca muchas cosas, desde el uso de macros,
scripts y otras cosas que incluídas en este tutorial lo harían muy largo, así
que voy a poner los comandos que no son para tan pricipiantes con ejemplos,
para que vean aplicaciónes de estas cosas.
Comandos avanzados de Vi
q(letra) | En modo normal empezará a grabar todas la ordenes que se ejecute hasta volver a presionar q. Ejm: "qad/<(Intro)q" graba la secuencia para borrar el contenido de un tag de html |
@(letra) | Repite el comando guardado con q en letra, por ejm: @a borrará el contenido entre las 2 tag en que esté el cursor. |
:abb mimail mimail@mimail.com | Crea una abreviación para el modo insertar, cada vez que escribas "mimail" en insertar se expandirá a "mimail@mimail.com" sirve para abreviar las cosas que escribas seguido |
:(rango)(comando) | Cuando haces un comando en modo línea de comando, puedes especificar un rango de líneas, por ejm: "1,3s/hola/ciao/gc" indica que busque y reemplace desde la línea 1 hasta la línea 3. El rango % indica todo el archivo. |
Bueno, eso es todo el tutorial, abajo incluyo algunos enlaces, para los que
quieran seguir investigando, son incríbles las cosas que se pueden hacer con
este editor.
|