Ultimamente ho cominciato ad usare ben tre plugin per VIm, tutti e tre abbastanza rodati e decisamente utili.
Il primo è dbext, che in pratica trasforma l’editor in uno strumento per l’interazione con i database, permettendo la scrittura di SQL e l’esecuzione live delle istruzioni, con tanto di autocompletion.
I risultati delle query vengono mostrati in un altro buffer, che è a sua volta editabile. Insomma, è un’alternativa molto interessante rispetto alla solita shell del database da riga di comando, quantomeno perché permette di modificare le query multilinea appena eseguite senza impazzire.
Oltretutto la configurazione interattiva è semplicissima e permettendo di interfacciarsi con praticamente tutto.
Infine, è possibile avere configurazioni multiple e cambiarle durante la sessione di lavoro, una figata.
Il secondo plugin è Project, che in pratica è “la lista dei file come dovrebbe essere“.
Infatti, un progetto altro non è che una fold formattata in un certo modo, ovvero:
nome=/path/project/ filter=\"*.c *.h\"{
Foo.c
Foo.h
Bar.c
}
su questa fold potete eseguire dei comandi (doppio clic o invio per aprire un file, \r per ricaricare etc), e basta tenere il file con le fold aperto in un buffer per usarlo come lista file del progetto.
Ma non solo: Project permette di avere fold annidate, e se seguite la procedura interattiva di creazione di un progetto vi creerà automaticamente fold per ogni directory ricorsivamente.
Ma siccome un progetto è solo una lista di stringhe in un file, spostandovi nella finestra della lista potrete cancellare o modificare le definizioni, ad esempio rimuovere la cartella dei log che non serve, filtrare i file README o .txt, usare solo i .xml nella cartella exampledocs e così via.
Il terzo plugin è rails.vim. , che fa un sacco di cose fiche, ad esempio fa si che sia possibile eseguire gli script o i task di rake. Ma soprattutto, fa funzionare gf (Goto File) in modo rails-ish.
Il che significa che ad esempio se state modificando routes.rb e c’è una linea come
map.resource :books
spostando il cursore su books e scrivendo gf automaticamente verrà aperto il controller BookController.
Non solo, offre dei comandi standard per passare ai file correlati, per cui potete saltare con la pressione di tre tasti dal modello allo unit test alle fixture al controller . E ovviamente se usate un mapping custom potete farlo con un tasto solo