Vim es Zen

Esta sección describe como configurar tu Vim para utilizarlo como entorno de desarrollado integrado de aplicaciones LAMP.

La idea surgió en el "Barcelona PHP Workshop #1" que tuvo lugar el 7 de junio de 2008. Allí, Víctor Guardiola y Manuel Aguilar (de Atrapalo.com) ofrecieron un taller con el título "VIM, el IDE para PHP". La presentación y los materiales están disponibles en la página web de phpbarcelona.org. El taller estuvo bastante bien, pero (y esto es sólo una opinión) se centró demasiado en explicar las ventajas generales de Vim y hubo poco tiempo para el tema central: configurar Vim como IDE.

De ahí que surgieran estas notas... Nuestro agradecimiento a Víctor y a Manuel.

En estas notas sí que nos centraremos en las características propias de un IDE y como conseguirlas con Vim. Si no estas seguro de querer utilizar Vim o dudas de sus cualidades; no estás en el sitio adecuado. Prueba con 7 Razones por las que Todos los Programadores Deberían Utilizar Vim (inglés).

En primer lugar, para tener un buen IDE necesitamos, al menos las siguientes características:

  • Edición de múltiples ficheros al mismo tiempo, en diferentes lenguajes y fácilmente accesibles.
  • Macros y un buscar/reemplazar superpotentes.
  • Movimiento rápido por el código, mejor si es inteligente para encontrar definiciones, parejas de paréntesis, de marcas e incluso de estructuras de control.
  • Realce de sintaxis para diferentes lenguajes de programación mediante el uso de colores, si es configurable mejor.
  • "Doblado de Código". Necesitamos ver la estructura del código sin perdernos en los detalles. Y necesitamos centrarnos en las áreas de trabajo sin que nos distraiga el resto del código. Esto se consigue ocultando partes.
  • Corrección sintáctica para evitar errores tontos (bastante tenemos con concentrarnos en el código como para preocuparnos de la gramática).
  • Autocompletar funciones de cualquier lenguaje y mostrar sus parámetros.
  • Depurador, lo cual en el caso de PHP no es nada sencillo.
  • Acceso a bases de datos para probar consultas y copiar resultados al código.
  • Conexión con repositorios de todo tipo (cvs, subversion, etc.)

 

También querremos que esté disponible para cualquier sistema operativo, que se pueda utilizar en modo carácter, a través de ssh, etc. Pero todo eso ya sabemos que lo tenemos con Vim.

Por si resulta de interés, aquí tienes un ejemplo de .vimrc. Pero naturalmente ya sabes que lo mejor es que hagas el tuyo según tus características y necesidades.

Hay características básicas de IDE que no vamos a explicar aquí. Son propias de Vim y puedes consultar su manejo en la ayuda o en alguno de los koans. Son las siguientes:

  • Facilidades para la Edición de Múltiples Ficheros: En Vim podemos abrir ficheros en pestañas, dividir estas en ventanas y manejar diferentes ficheros en múltiples buffers (visibles o no). Todo esto, en la ayuda de Vim (ver windows.txt, tabpage.txt, usr_07.txt, usr_08.txt, usr_09.txt, usr_23.txt, :help buffer y :help tab)
  • Macros y un buscar/reemplazar superpotentes: La potencia de Vim para crear macros y para buscar y reemplazar es impresionante. Para conocerla, ver usr_27.txt, map.txt, pattern.txt, :help map, :help q y :help search.
  • Movimiento rápido por el código: Con Vim puedes ir, pulsando sólo una o dos teclas, a cualquier parte del código. También puedes crear marcas de navegación (que no se incluyen en el texto). Solo necesitas conocer los comandos adecuados. Para ello, consulta usr_03.txt, usr_29.txt y motion.txt.
  • Realce de sintaxis para diferentes lenguajes de programación: También está incluido en Vim (:syntax enable). Incluso es configurable. Consulta usr_06.txt y syntax.txt.
  • Doblado de Código. El sistema de "doblado de código" de Vim es, problablemente, el más potente. Permite doblar el código tanto por marcas como por sintaxis (para ficheros de marcas tipo XML). Personalmente, creo que la mejor opción es utilizar las propias llaves (:set foldmarker={,}) para doblar el código usr_28.txt y fold.txt.

Como ves, sólo con iniciar Vim ya superas en varios aspectos importantes a cualquier otro IDE. Tienes magníficas pistas sobre como editar texto de forma efectiva en "Seven habits of effective text editing".

Todos cometemos errores, pero si alguien nos lo chiva antes de ponerlos en funcionamiento, mejor.

De eso se encarga el plugin Check Syntax. Con él, al escribir un fichero PHP a disco, nos informará de los errores sintácticos (si los hay).

Para instalarlo, lo de siempre. Descomprimimos el archivo en nuestro directorio ~/.vim/plugin.

Ya hemos hablado de la utilidad de doblar o esconder partes del código para centrarnos en el área donde estamos trabajando.

El doblado de código es nativo en Vim, no hay que activarlo. Para los ficheros de PHP el doblado debe ser por marca (:set foldmethod=marker). Y, en mi opinión, la mejor marca es la llave de bloque de código (:set foldmarker={,}). La ventaja de utilizar la llave como marca es que no resulta nada intrusiva.

Esta es otra función que ya viene "de serie" con Vim, y además para múltiples lenguajes.

Vim detectará el tipo del fichero y, pulsando CTRL-x CTRL-o mostrará las posibles funciones para completar la palabra que estés escribiendo junto con la información de sus parámetros. ¡Imprescindible!

Para activarla hay que incluir en el fichero .vimrc la sentencia:

setlocal onmifunc=syntaxcomplete#Complete

También es posible activar autocompletar sólo para algunos lenguajes, con sentecias del tipo: setlocal onmifunc=phpcomplete#CompletePHP.

Lo que necesitas:

logo transp

Sobre Ilke Benson

Dónde estamos     

C/ Donoso Cortés, 6 - 3º. Oficina 10
06002 Badajoz (Extremadura)

     
Teléfono  

telf: +34 924 98 34 19

fax: +34 924 98 34 19

Email  

  

info@ilkebenson.com

  

Pídenos

Es importante estar conectado con nuestros clientes, según nuestras metodologías de desarrollo, ellos se hacen parte indispensable en el ciclo de vida del proyecto.

Es por este motivo por el cual disponemos de un sistema que permite a nuestros clientes informar de incidencia o solicitar modificaciones de manera priorizada (peticiones de tareas).

Sistema de Gestión de Peticiones de Ilke Benson

Ilke Benson  ©2024 Ilke Benson. All Rights Reserved. Aviso Legal. Diseñado por Ilke Benson

¿Quieres algo concreto?