3 Características indispensables de Vim

Suelo ser de aquellos que prueban cada nuevo editor que va saliendo. De los que cambian de gustos cada 3 días pero por alguna razón siempre regresan arrastrandose a Vim.

Estas son algunas cosas que considero indispensables para programar:

1. Tabs!

Algo de lo que renegaba mucho antes de que saliera la versión 7, es que Vim no tuviera soporte para tabs, me era muy molesto tener que abrir varias instancias o usar screen, pero todo eso se mejoro con la salida de Vim 7, los comandos básicos para manejar tabs son:

:tabfind `archivo` - abre `archivo` en un nuevo tab
:tabnext - pasa al siguiente
:tabprevious - pasa al anterior
:tabnew - abre un nuevo tab
:tabmove `n` - mover el tab a la posición `n`

Obviamente es tedioso escribirlos completos, aunque el modo de comandos tenga autocompletado. Por eso lo mejor es hacer un mapping de ellos, con combinaciones de teclas que recuerdes fácilmente.

Mi mapping va de esta manera en el archivo ~/.vimrc.

map ,t :tabnew
map ,1 :tabprevious
map ,2 :tabnext
map ,f :tabfind
map ,m :tabmove
map ,n :tabnew

Por lo tanto solo escribo ,t para un nuevo tab o ,f para buscar un archivo y así sucesivamente.

Tabs en Vim

2. Autocompletar

Este es un indispensable en cualquier editor. Otra de las grandes cosas por las que me quejaba antes de Vim 7 es que no tenia un autocompletado con una lista seleccionable. A pesar de que el moy me alegara que esto no fuera indispensable.

De igual manera puedes incluir esto en tu .vimrc y listo.

function! Mosh_Tab_Or_Complete()
  if col('.')>1 && strpart( getline('.'), col('.')-2, 3 ) =~ '^\w'
    return "\"
  else
    return "\"
endfunction

:inoremap  =Mosh_Tab_Or_Complete()
:set  dictionary="/usr/dict/words"

Tu autocompletar quedara así:

Autocompletar en Vim

3. Sesiones

Soy uno de esos que termina frecuentemente con 5 o 6 archivos abiertos al final del día y me cuesta valiosos minutos llegar al día siguiente y acordarme en lo que estaba trabajando exactamente — por eso para mi las sesiones son indispensables. En Vim 7 puedes guardar sesiones para lo que gustes y donde gustes.

:mksession! archivo - te guarda tu estado actual en archivo
:source archivo - te restaura el estado que este guardado en archivo

Nuevamente, son comandos largos y somos huevones, así que hago un mapping sencillo:

map ,s :mksession! ~/.vim/.session 
map ,r :source ~/.vim/.session 

Con ,s grabo el estado actual, que archivos tengo abiertos y con ,r recargo el estado de la ultima sesión que guarde.

¡Más sencillo no se puede!