Texto íntegro de Carlos Morales, 20 Enero del 2000
-

En un principio, vim parece muy complicado de manejar, pero una vez que se practica lo suficiente, se ve la potencia y la rapidez que posee. Yo lo recomiendo y aunque la mayoria de gente está acostumbrado a los "faciles" y "sencillos" editores de Windows, con el editor vim se consigue escribir muy rápido sin tener que levantar las manos del teclado (que es lo que se necesita a la hora de programar) olvidándote del mouse por completo, y tiene opciones que a la hora de programar son muy buenas.

Para entrar al editor VIM:

Pulsar lo siguiente:

vim nombre_del_fichero

Órdenes más comunes:

Para usar estas órdenes pulsar ESC más la tecla...

    	
    i --- inserta texto
    dd --- borra una linea
    dw --- borra una palabra
    x --- borra un carácter
    u --- deshace el último cambio

Modo Visual

Para usar esta orden pulsar ESC más la tecla "v" y mover las teclas de dirección, a este texto se le puede:


    d --- borra texto seleccionado
    y --- copia texto seleccionado

Órdenes en modo ex:

    Para usar éstas órdenes pulsar ESC junto con : y la orden deseada...

    :número_de_línea --- el cursor se va a la línea número_de_línea

    :q --- (quit) sale del editor, si no ha habido modificaciones

    :q! --- sale del editor sin grabar

    :w --- (write) graba el fichero. También :w $HOME/nombre_del_fichero graba el fichero en el directorio raiz con el nombre de fichero especificado

    :x igual que :wq --- graba el fichero y sale del editor

    :e fichero --- edita un nuevo archivo llamado fichero

    :w >> fichero --- Añade el fichero actual al archivo llamado  fichero

    :f --- nombra el fichero


Cortar, Copiar y Pegar:

    Con el editor vi tenemos lo que se llama unos buffer's, en los cuales podemos guardar momentaneamente bloques de texto. Cuando borramos alguna parte de texto, lo que en realidad estamos haciendo es llebarlo al buffer. También tenemos la opción de nombrar el buffer al que queramos mover. Será de gran utilidad cuando tengamos que escribir varias veces un texto o varios textos.
    Para usar estas órdenes pulsar ESC más la tecla...

    4dd --- (Delete) Borra 4 líneas, vi las lleva al buffer

    5yy igual que 5Y --- (Yank) Copia 5 líneas de texto, y las lleva al buffer

    p --- (Paste) Pega todo el texto que tenga en eL buffer

    "a5yy --- Guardamos 5 líneas en el buffer llamado a

    "ap --- Pegamos todo el texto (ahora 5 líneas) del buffer llamado a


Órdenes interesantes de borrado:

    En todas éstas funciones lo borrado lo lleva al buffer

    w --- avanza una palabra

    3w --- avanza 3 palabras

    dw --- borra una palabra

    4dw --- borra 4 palabras

    d3w --- borra 3 palabras

    4d3w --- borra 12 palabras (efecto multiplicativo)

    25dd --- borra 25 líneas


Búsqueda de palabras:

    Para usar éstas órdenes pulsar ESC y la orden deseada...

    /palabra --- búsqueda de palabra en posiciones siguientes

    ?palabra --- búsqueda de palabra en posiciones anteriores

    si se quiere continuar con la búsqueda pulsar n y si queremos hacerlo en dirección contraria, pulsaremos N

    :1,$s /palabra_antigua/palabra_nueva/g --- sustituye palabras en todo el documento

    :m,ns /palabra_antigua/palabra_nueva/g --- sustituye palabras desde la línea m hasta la línea n


Marcas de posición:

    Si queremos dejar marcas para poder volver a ellas rápidamente pulsremos m seguido de un caracter simple.
    por ej. pulsar ESC " m a "

    Para volver a la posición pulsar el acento grave ` seguido del caracter.
    por ej. ESC " ` a " y el cursor se situará en la marca de a.


Opciones del editor:

    Todas son muy útiles a la hora de programar.
    Para poder personalizar opciones del edito vi tenemos estas opciones:

    :set ai --- (autoindent) al pulsar intro el cursor se situa alineado con el comienzo de la última línea

    :set sm --- (showmatch) al cerrar un paréntesis, llave o corchete, el cursor se coloca momentáneamente en el paréntesis, llave o corchete previamente abierto

    :set nu --- (number) visualiza en cada línea su número

    :set tabstop=n --- al teclear un TAB hace n espacios

    :set ignorecase --- los carácteres mayúsculas y minúsculas son ignorados a la hora de hacer búsquedas

    :set all --- activa todos las opciones

    :set noai, :set nosm, :set nonu --- desaciva la opción deseada

    Si queremos que cada vez que entremos en vi tengamos éstas opciones activadas se puede hacer de dos formas:

  • Creando el archivo .exrc (ex run control) en el cual pondremos los atributos deseados por ej. el archivo .exrc podria ser  el siguiente:
    • set autoindent autowrite showmatch report=1
      set wrapmargin=8
      set tabstop=6
  • O bien ejecutando (recomiendo ponerlo en el .profile) la orden:
    • EXINIT='set autoindent tabstop=4 ignorecase' ; export EXINIT
Hay en total unas cincuenta órdenes de opciones.

Movimientos de cursor y de pantalla:

    H --- (Home) mueve el cursor al principio de la ventana

    M --- (Middle) mueve el cursor a la mitad de la ventana

    L --- (Last) mueve el cursor al final de la ventana

    ^F --- (Forward) avanza una página

    ^B --- (Backward) retrocede una página

    ^U --- scroll up media ventana

    ^D --- scroll down media ventana


Salir y volver a entrar en el vi:

    Pulsar ESC y luego :! <enter>
    Saldrá al shell y podremos ejecutar cualquier orden del mismo.
    Para volver donde dejamos a vi pulsar o bien exit o bien ctrl-d(^d).


Conclusión:

    Éstas órdenes son más que suficientes para manejar con cierta soltura a vi.

    No son ni mucho menos todas las órdenes posibles, me divierte mucho cuando leo cualquier libro sobre Unix - Linux el buscar alguna orden que hasta entonces no conocia, y bueno siempre pasa lo mismo.

    Leí una vez que se pueden programar las teclas, pero también decía que a demás de ser muy complicado era muy engorroso, aqui doy a entender la cantidad de opciones que tiene el vim. Sin lugar a dudas el editor que se trabaja mas rapido es este el vim.

    Nota:El vim es el vi mejorado.