Publicidad
publicidad

Inicio->Vim
Tutorial de VI por mundacho

Í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:
Arranque de Vim
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:

Vim 2

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,lizquierda, abajo, arriba, derecha
0Mueve el cursor al comienzo de la línea
$Mueve el cursor al final de la línea
HA la primera línea de la pantalla
MAl medio de la pantalla
LA a la última línea de la pantalla
wAl comienzo de la sgte. palabra
WLo mismo que w, pero sin respetar signos de puntuación
eEl final de la sgte. palabra.
ELo mismo que e, pero sin respetar signos de puntuación
bAl comienzo de la palabra anterior
BLo mismo que b, pero sin respetar signos de puntuación
/búsquedaA la sgte. aparición de búsqueda
?búsquedaA la aparición anterior de búsqueda
nRepite la búsqueda hecha con los comandos anteriores
GIr a la última línea del texto
(nro)GVa a la línea que dice número, por ejm: 1G, va a la primera línea
Inserción
iInsertar donde está el cursor
IInsertar al principio de la línea
oInsertar abajo de la línea
OInsertar arriba de la línea
aInsertar después del cursor
AInsertar al final de la línea
Edición
xBorrar un caracter
ddBorrar una línea
yyCopiar una línea
pPegar una línea/carácter que fue borrada o copiada
DBorrar hasta el final de la línea
rcReempaza el caracter del cursor por "c"
uDeshacer el último comando
JUnir dos líneas
maMarcar la línea con la letra "a"
'aIr 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
:qSalir
:w nombre.archivoguardar el archivo bajo el nombre nombre.archivo
:wqgrabar y salir
:e nombre.archivoAbrir nombre.archivo para editar
:s/buscar/remplazar/gcBusca 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
cwCambiar palabra
dwBorrar palabra
d'aBorrar hasta la línea marcada con "a"
c/"Cambiar el texto hasta las comillas
xpIntercambia dos caracteres: Ejm: "ga" "ag"
ddpLo mismo que el anterior pero intercambia dos líneas
dGBorra hasta el final
d(nro)GBorra 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.

EnlaceDescripción
htmlvim.vimSi quieren ver un ejm de un script de Vim, este script me lo hice para editar mi html.
vimrcEs mi archivo .vimrc, donde hay un par de macros que tengo definidos que siempre uso, no es grande pero ilustra cosas útiles
La página de VIMLa página oficial de Vim, de ahí te lo puedes bajar

Valid XHTML 1.1! Valid CSS!