Nuestro aporte

Los koans son problemas que los maestros Zen plantean a sus discípulos.

No se resuelven por lógica y tampoco tienen ninguna solución determinada. Son elementos de aprendizaje que los maestros utilizan para ayudar a sus discípulos a alcanzar nuevas dimensiones de pensamiento no relacional.

Los comandos de Vim actúan de forma similiar. Al principio parecen carentes de sentido. Pero, con práctica (y pensamiento no lineal) es posible encontrarles explicaciones lógicas que nos ayudarán a memorizarlos y a utilizarlos correctamente.

Ese es el objetivo de estas páginas: explicar algunos de los koans (comandos) de Vim.

Cada koan está planteado como un diálogo entre el maestro y el discípulo, simplemente para hacerlo más entretenido.

Las explicaciones no se proponen como soluciones únicas, sino como ejemplos de razonamiento. Cada uno debe encontrar, buscando en su interior, su propia explicación a cada koan.

Hay otros muchos plugins y comandos de Vim que te permitirán configurar un IDE a tu gusto. Analiza como trabajas, identifica lo que echas en falta y búscalo. Seguro que ya existe.

Estos son algunos otros plugins que pueden resultar útiles:

  • MatchIt - Amplía el comando % a coincidencias HTML, XML e incluso lenguajes de programación.
  • NERDTree - Crea una ventana con un árbol para navegación en directorios.
  • NERDCommenter - Comenta bloques enteros de código.
  • SQLUtilities - Ayuda a formatear las consultas SQL.
  • BufExplorer - Facilita la navegación entre buffers.
  • Project - Organiza los ficheros de un proyecto mostrándolos en una ventana.
  • Align - Facilita la alineación del código mejorando la presentación.

Si estás desarrollando código, seguro que utilizas algún repositorio (cvs, subversion, svk...). Vim te permite acceder y gestionar el repositorio sin necesidad de salir del IDE.

Para hacerlo necesitas instalárte el plugin VCS. Con él podremos gestionar diferentes repositorios (subversion, cvs, svk y git), realizando commits, viendo diferencias entre versiones, comprobando quien realizó los últimos cambios, etc.

Para instalarlo, lo de siempre. Te descargas el plugin y lo descomprimes en tu directorio ~/.vim. Luego es necesario actualizar el fichero de ayuda de Vim para que incluya los comandos de VCS con :helptags ~/.vim/doc.

Para utilizarlo, tendrás que consultar la ayuda. Estos son algunos de los comandos más utilizados:

  • :VCSAdd - Añade el fichero actual al control de versiones.
  • :VCSAnnotate - Muestra el fichero actual con indicación de la revisión de cada línea y del usuario que la realizó.
  • :VCSCommit - Hace un commit del fichero actual. Si se añade un argumento será el mensaje.
  • :VCSDelete - Borra el fichero actual y lo elimina del repositorio.
  • :VCSDiff - Muestra las diferencias del fichero actual con la última versión del repostorio. Es posible indicar una revisión como argumento.
  • :VCSInfo - Muestra información del fichero actual.
  • :VCSLog - Muestra la información histórica del fichero actual.
  • :VCSUpdate - Actualiza el fichero actual con la última versión del repositorio.

Otra característica útil de un buen IDE es el acceso a bases de datos sin necesidad de salir del entorno. Esto nos permite comprobar consultas SQL, diseñar modelos de datos y, sobre todo, copiar resultados directamente al código. Todo esto podemos hacerlo con Vim.

Para ello, necesitamos instalarnos el plugin DBext. Con él podremos conectarnos a distintas bases de datos (MySQL, Oracle, Sybase, SQL-Server...) desde nuestro Vim.

Para instalarlo, lo de siempre. Te descargas el plugin y lo descomprimes en tu directorio ~/.vim. Luego es necesario actualizar el fichero de ayuda de Vim para que incluya los comandos de DBext con :helptags ~/.vim/doc.

Para utilizarlo, lo mejor es empezar ejecutando :help dbext-tutorial, que nos dará acceso al tutorial del plugin que es imprescindible leer. DBext tiene una amplia funcionalidad y, entre otras cosas, tendremos que crear los perfiles de conexión a bases de datos que queramos utilizar.

Frecuentemente necesitamos acceder a una clase, método, función o constante de nuestro código. Y tenemos que hacerlo desde otro fichero en el que nos encontramos programando. Para hacer esto fácilmente tenemos los Tags.

Con los tags, podemos poner el cursor sobre una palabra (clase, método, función...) y, pulsando CTRL-], o CTRL-LeftMouse, accederemos directamente a su definición. Pulsando CTRL-T o CTRL-RightMouse volveremos al fichero y posición anteriores.

Debo indicar que, al menos en mi caso CTRL-] no funciona (porque estoy en modo visual). Debo utilizar CTRL-5 (o las opciones con el ratón ya indicadas).

Si queremos que la definición del término se abra en una nueva ventana, debemos pulsar previamente CTRL-W.

Para instalarlo necesitaremos el programa ctags-exuberant en nuestro sistema.

Para hacerlo funcionar primero debemos generar el fichero de tags, en el que se guardan referencias de cada término y luego indicarle a Vim qué fichero debe utilizar como fichero de tags. Vamos por pasos:

Para generar el fichero de tags de un directorio de trabajo se puede utilizar un script como este:

	#!/bin/bash
	cd /path/directorio/proyecto
	exec ctags-exuberant -f proyecto.tags \
	-h ".php" -R \
	--exclude="\.svn" \
	--exclude="\doc" \
	--exclude="\PHPUnit" \
	--exclude="\jsunit" \
	--totals=yes \
	--tag-relative=yes \
	--PHP-kinds=+cf \
	--regex-PHP='/abstract class ([^ ]*)/\1/c/' \
	--regex-PHP='/interface ([^ ]*)/\1/c/' \
	--regex-PHP='/(public |static |abstract |protected |private )+function ([^ (]*)/\2/f/'

 

Estas opciones, que se basan en la explicación de Mathew Weier O'Phinney Exuberant ctags with PHP in Vim, generan un fichero de tags con el nombre proyecto.tags, excluyen diversos directorios (svn, doc, PHPUnit y jsunit), con paths relativos al directorio, incluyendo funciones, etc. (ver man ctags-exuberant).

Una vez creado el fichero de tags (actualizado periódicamente según avance el proyecto), lo cargamos en Vim con :set tags=proyecto.tags.

Y ya lo tenemos listo.

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?