Entorno de trabajo (II): IDEs vs Konsole + VIM

A la hora de escribir programas de tamaño medio-grande normalmente la mayoría de gente utiliza un IDE, que son programas muy potentes que suelen llevar integrados un editor, un compilador, un debugger, integración con herramientas de control de versiones, herramientas para diseñar GUIs y mil cosas más. Pero existen alternativas puede que a alguno le vaya mejor.

De IDEs

Quizás el IDE más usado sea Eclipse, ya que es open-source, multiplataforma (está escrito en Java), soporta muchísimos lenguajes y tiene una comunidad enorme detrás que ayuda a mejorarlo y contribuye con plugins a extender su funcionalidad. También hay otros IDEs que están muy bien, como KDevelop (ideal para programar sobre GNU/Linux y KDE), NetBeans (de Sun, para Java), JDeveloper (de Oracle, también enfocado a Java) y muchos otros.

En cuanto a funcionalidades los IDEs están muy bien y en mi opinión son una herramienta a tener en cuenta dependiendo del proyecto. Por ejemplo, a la hora de diseñar interfaces gráficas de usuario o alguna librería gráfica nos puede venir muy bien ver un preview de lo que estamos programando. Pero tienen un par de peros:

  • 1. Requieren cantidades salvajes de memoria, aunque hoy en día ésto no suele ser muy problemático ya que la memoria está barata.
  • 2. Están diseñados para ser usados con el ratón (o, mejor dicho, no están diseñados para ser utilizados sólo con el teclado :)
  • 2.1. El editor que llevan no es VIM (bueno, ya existe un plugin de eclipse que lo integra, ViPlugin, pero no lo he probado aún).

La alternativa: VIM + plugins sobre Konsole

Lo primero que hay que saber es lo siguiente:

VIM es EL EDITOR. Puntoyaparte.

O sea que es la reostia bendita caña, vamos. Un monumento habría que hacerle al que escribió este programa.

Quizás el único problemilla es que tiene una curva de aprendizaje algo bestia, por lo que al principio puede llegar a ser frustrante y tanto es así mucha gente pasa de él completamente huye de él como si fuera el demonio. Pero bueno, una vez que le coges el truquillo no puedes dejarlo de usar porque cualquier otra cosa es una pérdida de tiempo.

La potencia de VIM se debe a principalmente a dos características:

  • VIM es modal, es decir, tiene diferentes modos: modo inserción y modo comando. La posibilidad de poner a VIM en modo comando y ejecutar acciones mediante pocas teclas es su característica principal.
  • VIM es extensible. Mediante maps (vienen a ser key-bindings) combinados con la programación de funciones es posible aumentar las funcionalidades de VIM hasta el infinito y más allá. Éstas nuevas funcionalidades se empaquetan como plugins o scriptsque es posible descargar desde la página oficial de VIM.

Si ya de por sí las características que lleva VIM de serie son superiores a cualquier IDE, si estamos acostumbrados a una série de características de éstos últimos podemos bajarnos una serie de plugins que las implementan y otros que las superan. Algunos de ellos son los siguientes:

  • SuperTab: permite utilizar el tabulador para utilizar las funciones de autocompletado de VIM, con lista desplegable y todo. Aquí hay un enlace que explica cómo activar el autocompletado para PHP.
  • LustyExplorer: muestra una ventana con una lista de los posibles ficheros a editar desde el directorio de trabajo y soporta autocompletado.
  • TagList: añade un panel vertical a la izquierda con la estructura del fichero de código fuente que estamos editando: includes, clases, variables/atributos, métodos/funciones… y permite acceder a ellas a golpe de enter.
  • XHTML: permite insertar tags XHTML mediante un par de caracteres; por ejemplo, pulsando ;ah te inserta <em><a href=””></a></em> dejando el cursor entre las comillas para poner el enlace.
  • Closetag: permite vía “Control + _” insertar el cierre del último tag X/HTML abierto.
  • NERDCommenter: permite comentar/descomentar líneas de código, soportando decenas de lenguajes de programación.
  • MultipleSearch: vía “:Search patrón” permite realizar múltiples resaltados de elementos en diferentes colores.
  • Otros: cecutil, vimpress, matrix, AlignPlugin, java_apidoc.

Si a alguien le interesa una pequeña presentación sobre la extensibilidad de VIM que hicen con Rai para EADAX (una asignatura de la FIB de la que se aprende algo, sorpresa!), se la puede bajar de aquí, y si alguien tiene algún plugin interesante que lo ponga en los comentarios d:D

El resto del IDE: Konsole

Konsole es la consola de KDE. Ofrece dos cosas interesantes:

  • Interfaz con tabs
  • profiles: permite guardar configuraciones de konsole, y en particular, los tabs abiertos en sus directorios correspondientes.

Para trabajar en un proyecto en particular lo suyo es dedicar tabs determinados a funcionalidades específicas, que son las que nos ofrecen determinados programas para completar las que pueden existir en un IDE: compilador (GCC), control de versiones (CVS/Subversion/git), debugger (gdb), profilers (gprof), herramientas de análisis de código (valgrind), etc.

Por ejemplo, para PHP podemos tener el primero para lanzar los servicios apache2 y mysql y compilar algo si es necesario, el segundo para CVS/SVN, el tercero para documentación, y del cuarto a los siguientes podemos usarlos para editar los ficheros fuente que están en distintos directorios. Una vez que ya tenemos los tabs en sus directorios corresponientes, guardamos un profile (preferencias > guardar perfil de sesiones) que podremos recuperar lanzando el programa como $ konsole –profile “nombredelprofile”.

Anuncios

Una respuesta to “Entorno de trabajo (II): IDEs vs Konsole + VIM”

  1. Mola el artículo! Y por supuesto mola Vim. Respecto al Konsole, existe la alternativa de usar screen. Especialmente útil si necesitas trabajar con un cluster o servidor. En lugar de abrir y preparar tu sesión cada vez, puedes dejarla corriendo tranquilamente, detach, irte y re-attach más tarde para seguir dónde estabas. Con todas las ventanas que quieras! ;)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: