Vim Hacks

Quiero dejar aquí algunas pequeñas cosas útiles sobre Vi/Vim

Fold functions: replegar funciones en los lenguajes de programación:

Con esta funcionalidad somos capaces de “replegar” partes que elijamos del código -o todas- de forma que podamos muchas veces navegar o ver las cosas más claramente. Es una característica que incluyen la mayoría de IDE’s modernas y que también está presente en Vi/Vim por defecto.

Para activarla tendremos que teclear la siguiente orden desde Vi/Vim o añadirla anuestro vimrc.


:set foldmethod=syntax

Podemos hacer unas cuantas cosas con esto, os dejo lo atajos de teclado para jugar con esto (obtenidos de la ayuda de Vim):

zf#j creates a fold from the cursor down # lines.
zf/ string creates a fold from the cursor to string .
zj moves the cursor to the next fold.
zk moves the cursor to the previous fold.
zo opens a fold at the cursor.
zO opens all folds at the cursor.
zm increases the foldlevel by one.
zM closes all open folds.
zr decreases the foldlevel by one.
zR decreases the foldlevel to zero -- all folds will be open.
zd deletes the fold at the cursor.
zE deletes all folds.
[z move to start of open fold.
]z move to end of open fold.

Esquemas de colores para el resaltado de texto.

El resaltado de código puede ser algo muy particular; hay quien se conforma siempre con el que trae por defecto su IDE y hay quien siempre lo toca. Para los inquietos va este apartado.

En esta página de proyecto podréis encontrar muchos, seguro que alguno os gusta. Sólamente tenéis que extraerlos en la carpeta colors y cambiarlos en vuestro vimrc.

Guardar y restaurar sesiones.

Es muy útil cuando tenemos varias pestañas (tabs) abiertas y queremos recuperar posteriormente el proyecto sin perder el tiempo en abrir todo de nuevo.
Guardamos la sesión con:

 :mksession ruta/nombre_sesión.vim

Después restauramos sin más que hacer (con vim abierto):

 :source ruta/nombre_sesión.vim

O bien si preferimos que se abra la sesión directamente al abrir vim lo cargamos con:

$vim -S ruta/nombre_sesión.vim

*El símbolo $ indica que es un comando desde la terminal, no desde Vim.
Algo importante respecto a esto es que este comando no guarda los cambios que hemos realizado, por lo que os aseguréis antes de crear la sesión de guardarlo todo.

SECCIÓN PLUGIN’S

Una vez os sintáis cómodos con Vim podéis exprimir enormemente el editor instalando algunos complementos. Yo recomendaría instalar primer snipMate
Algo importante sobre los plugins. Con MacOS me ha pasado, pero supongo que son otros navegadores puede ocurrir lo mismo -aunque lo dudo. NO dejéis que Safari os descomprima los ficheros de los plugins automáticamente, descomprimid vosotros mismos el zip o el rar en la carpeta ~/vim y os evitaréis algún que otro quebradero de cabeza si no encontráis porqué el dichoso plugin no funciona. Para los más despistados os dejo una captura de pantalla, tenéis que quitar el último tic.

Para cada lenguaje seguro que existe un plugin como este, en mi caso para C/C++ uso c.vim. Os dejo quizás el mejor tutorial para usarlo (en inglés, eso sí):
Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin

Podéis probar también ctags (o ctags exuberant) para empezar a usar tags. Es realmente potente, yo solo domino lo básico, pero se le puede sacar mucho partido. Tenéis una pequeña muestra en este enlace.

En Mac se instala fácilmente a traves de MacPorts con port install ctags.

cscope también se instala de la misma forma.

ENLACES Y RECURSOS:
Comandos básicos en su mayoría que nos vendrán bien para hacernos amigos de vi/vim:

ctags guide tutorial: http://www.thegeekstuff.com/2009/04/ctags-taglist-vi-vim-editor-as-sourece-code-browser/

Guia básica para navegar por el código en Vi/Vim usando ctags: http://www.chuidiang.com/clinux/herramientas/ctags/ctags.php

Un video sobre el uso básico de cscope y ctags:

Esta entrada fue publicada en linux, Mac, Vim. Guarda el enlace permanente.

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