24 de Octubre, 2012

Mis dotfiles

Hace bastante tiempo me pedían en un comentario que explicara un poco qué configuración tengo en mi $EDITOR, y la verdad es que me daba (y da) pereza porque no tengo tampoco gran cosa comparado con lo se gasta la gente por ahí.

Como sea, lo prometido es deuda (a no ser que seas un político español, claro :P), así que aquí están mis movidas para vim: mis dotfiles.

Lo tengo siempre ahí y está pensado para descomprimir en nuestro $HOME (con un tar xvf dotfiles.tar.gz) y así tener cualquier vim a mi gusto rápidamente. Evidentemente no quieres hacer esto si ya tienes cosas configuradas, ojo :).

No uso un repositorio para controlar los cambios que hago porque, sinceramente, mi configuración es bastante estática... así que no me parece algo imporante.

El paquete tiene tres partes, que vengo a explicar más o menos a continuación, aunque los ficheros están comentados ;).

.vimrc

Este fichero de configuración es muy importante porque define cómo se va a comportar el editor en temas de edición :). Por ejemplo: tabulados de distancia 4, activar el autoindentado, números de linea, etc. Nada del otro mundo.

Lo único especial es que me gusta el esquema de colores torte (viene instalado por defecto, FTW!), con fondo negro. Mis terminales también van con fondo negro, no me gusta el efecto bombilla del texto oscuro sobre fondo brillante. En realidad cualquier fondo me vale, siempre que sea negro ;).

Además cargo un fichero de configuración extra dedicado a Python, la corrección ortográfica en inglés y la tecla F9 para ejecutar un git diff en un buffer sin fichero asociado (que puedo cerrar sin más). Muy útil (se puede adaptar a otros VCS, en la oficina uso una versión para svn).

.gvimrc

Yo soy de gvim, aunque deshabilito los iconos y el menú porque no los uso. La diferencia es que gvim juega mucho mejor con el ratón que vim, algo que me resulta muy cómodo a veces (por ejemplo: svn diff | gview - y a hacer code review acompañado de un buen café).

Además tengo configuradas un par de cosas para las pestañas, aunque juraría que hace años que no uso esa funcionalidad porque me resulta más cómodo partir una sola pestaña en distintas ventanas e ir cambiando de buffer.

.vim/

En este directorio tengo un fichero de configuración python con algunas cosillas útiles junto al estándar que usamos en el trabajo (bastante PEP8, así que lo uso ahora en casa). Muchas cosas las he sacado de una página de desarrolladores de Launchpad, aunque he perdido el enlace :(.

Y aquí llegamos a los plugins, que facilitan y complican la vida a partes iguales. Uso solo 3:

  • autoclose.vim: es algo complicado de usar, hasta que le coges el tranquillo. Básicamente es un gestor inteligente que cierra paréntesis, comillas, llaves, etc. Digo inteligente porque hasta que te haces con él es una pelea constante :D. La clave es hacer CTRL + v seguido del caracter que quieres que no gestione. En general es útil.
  • bufkill.vim: esto debería de estar incluido en el propio editor. No hay nada más incómodo que tener n ventanas abiertas y al cerrar un buffer que no vas a seguir usando con :bd... zasca, te cierra la ventana donde estaba. Con este plugin puedes hacer :BD y preservar la ventana. Aparte tiene otras funcionalidades, pero solo con el :BD ya me facilita mucho las cosas.
  • python_pydoc.vim: poder hacer algo como :Pydoc httlib y leer la documentación de un módulo Python en una ventana dentro del editor es muy útil. A veces hay que recurrir a la documentación de python.org, pero tener esto a mano ahorra mucho tiempo.

Y esto es todo. En realidad nada del otro mundo, y hasta parece que falta algo más de funcionalidad para trabajar con VCS. Bueno, a mi me gusta controlar desde la consola, aunque es cierto que en este aspecto emacs es una pasada. Pero claro, solo por eso... tampoco nos vamos a reprogramar a estas alturas de la película ;).

Anotación por Juan J. Martínez, clasificada en: vim.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: