/examplelab.png

Control de versiones desde VIM

author:Hugo Ruscitti

Actualmente suelo usar controles de versiones para casi todo, tanto en el trabajo como en los proyectos personales.

Ahora bien, una buena práctica a la hora de trabajar usando controles de versiones es hacer commits frecuentes, para lograr un historial rico en detalles y fácil de consultar.

También es habitual para muchos programadores (bah, al menos para mí) usar distintos sistemas controles de versiones: git, mercurial, bazaar... etc.

Pensando en estos dos detalles, me puse a buscar soluciones, y en sitios de otros programadores encontré a vcscommand.

vcscommand

vcscommand es un complemento para vim que facilita la edición de archivos bajo un control de versiones.

Lo interesante es que provee varios comandos que sirven como una interfaz para tratar con el sistema control de versiones.

Uno no tiene que preocuparse por el sistema de versiones que está usando, vcscommand provee los mismos comandos para casi cualquier control de versiones.

Instalar el complemento

El complemento está disponible para descargar en la siguiente dirección:

Y se puede instalar descargando el archivo .zip y descomprimiéndolo en el directorio .vim. Por ejemplo, al momento de escribir este artículo use un comando como el siguiente:

wget http://www.vim.org/scripts/download_script.php?src_id=12743 -O tmp.zip
unzip tmp.zip -d ~/.vim/

Una vez instalado podemos ingresar al editor y utilizar el complemento.

Comandos principales

Para utilizar el complemento tenemos que estar dentro de un directorio bajo control de versiones.

Casi todos los comandos actúan sobre el mismo archivo que se está editando, por ejemplo si abrimos un archivo que tiene

diff

Para ver los cambios del archivo que estamos editando contra la última versión podemos usar los siguientes comandos:

  • VCSDiff
  • VCSVimDiff

add

Para insertar un nuevo archivo dentro del repositorio se puede usar el comando:

  • VCSAdd

que inserta en el repositorio el archivo actual.

commit

Se debe usar el comando:

  • VCSCommit

y completar el comentario del commit dentro del buffer que se muestra en pantalla.

Una vez completado el comentario se puede escribir :wq para abandonar el buffer y completar el commit.

¿Pull y push ?

m... actualmente vcscommand no implementa ninguno de los dos comandos, lo que resulta un problema de consistencia si usas algo como git o mercurial.

Aunque, a fines prácticos, podrías usar la integración de shell que viene por defecto con vim:

:!hg push

o:

:!git push origin master

y si, lo se, no es lo mas elegante dado que no te permite abstraer del control de versiones, pero es algo...

Atajos

Todos los comandos del plugin tienen su atajo asociado, de forma que no tienes que ingresar todo el comando cada vez que los utilizas.

Esta es una lista de los mas utilizados (todos se invocan desde el modo comando):

Atajo Resultado
ca Añade el archivo actual al control de versiones.
cc Commit
cd Diff
cv VimDiff

Conclusión

vcscommand es un complemento útil, principalmente porque permite gestionar cualquier control de versiones bajo la misma interfaz. Aunque se queda en el camino al no implementar los comandos como push o pull, que nos indispensables dentro de los controles de versiones distribuidos.