Plugins VIM essentiels avec Ruby & Rails

- 29 Nov 2011 -

Je le présentais dernièrement dans un billet, j’ai quitté TextMate pour passer à VIM. TextMate a gagné la confiance des développeurs grâce à sa capacité de configuration et à ses nombreux raccourcis clavier très productifs. Beaucoup de développeurs, principalement issus du web, ont fait le choix d’exploiter un éditeur de code évolué plutôt d’un IDE. Notamment pour pallier à leur lourdeur. Je pense que cette tendance s’est développée grâce aux capacités avancées de personnalisation des éditeurs de code. Par exemple, ils proposent des systèmes de “Snippet” qui sont très productives. Celles-ci permettent de générer des parties de code source “à la volée”. Je ne parle pas de génération automatique de codes. Simplement la possibilité de générer et d’automatiser la production de quelques lignes de code souvent répétitives. Ce système permet, à mon sens, une plus grande maitrise des sources.

Snippet

Vim propose par defaut un système équivalent aux Snippets. Ce sont les “abbreviations”. Par exemple, en saisissant la ligne suivante dans votre .vimrc:

  abbr psvm public static void main(String[] args){<CR>}<esc>0

vous pourrez, en tapant psvm puis TAB, générer la ligne de code très connue en C: public(…).

Toutefois, j’ai trouvé le plugin SnipMate plus intéressant: Télécharger SnipMate VIM. Celui-ci se compose par default de différentes snippets situées dans .vim/snippets/*. La documentation est très bien faite. Je ne vais donc pas rentrer dans les détails. Il faut juste noter que les snippets liées à HTML & Ruby sont très productives.

NOTE: Sous MacVim il existe un petit problème: lorsque l’on sélectionne du texte, une pression sur backspace fait revenir le curseur au delà de la position classique.
Pour corriguer ce problème, il suffit de commenter la ligne “snor b” située dans le fichier .vim/after/plugin/snipMate.vim.

Auto Close

Par defaut, VIM ne propose pas la fermeture des symboles: [], (), {}. J’ai comblé cette lacune avec le plug-in “autoclose” disponible à cette adresse: https://github.com/Townk/vim-autoclose.

Ouverture des fichiers

NERDTree permet d’ouvir un arbre présentant les fichiers du dossier courant. L’ouverture de cet arbre peut être mappé. Ainsi en mode visualisation, en tapant F12, l’arbre s’affiche ou non. Voici mon .vimrc paramétrant ces éléments:

map <F12> :NERDTreeToggle<CR>
"let g:NERDTreeWinPos = "right"
let g:NERDTreeWinSize=33

Sous TextMate la touche Cmd-T facilite l’ouverture d’un fichier recherché. Le plugin-in FuzzyFinder permet de mettre en place cette fonctionnalité de la même manière. Notamment la commande “:FufCoverageFile”. J’ai mappé celle-ci avec la touche F11, ce qui donne dans mon .vimrc:

map <F11> :FufCoverageFile<CR>

Lorsqu’un fichier est selectionné, on peut utiliser différentes combinaisons pour l’ouvrir:
- Enter pour ouvrir dans la fenêtre courante
- CTRL+j pour ouvrir avec un split
- CTRL+k pour ouvrir avec un vsplit
- CTRL+k pour ouvrir dans une tab

Editer du code eRuby

Sous Textmate, il est possible de créer automatiquement le code suivant: “<%= %>” au moyen du raccourcis SHIFT+CTRL+>. Le plugin RagTag permet de réaliser ceci sous VIM au moyen des touches CTRL+W puis = ou SHIFT+=.

De la couleur

Il existe aussi le thème RailsCasts disponible: RailsCasts adapté à VIM. Toutefois, j’ai préféré utiliser mon propre thème: ParisByNight adapté à Ruby On Rails.

Tags

vim, ruby, rails .

Commentaires (par Disqus)

blog comments powered by Disqus