de rstudio a vim Cela fait un peu plus de deux mois que je tente d'utiliser Vim comme mon éditeur de texte principal. Je l'utilise désormais quotidiennement pour éditer mes fichiers en R, Markdown et Python.

Dans ce billet, je vais décrire mon chemin vers un environnement de travail avec Vim et R.

Il y a deux ans...

J'utilise R depuis plus de 2 ans maintenant. J'ai débuté en utilisant simplement le GUI fourni avec R pour Mac OS X qui est assez basique, mais contient les fonctions principales : un éditeur de texte qui est lié avec une instance de R tournant dans une console dédiée et une fenêtre pour les sorties graphiques. La documentation est facilement accessible avec un navigateur intégré.

Rgui

J'étais cependant frustré par l'éditeur de texte : la coloration syntaxique est minimaliste, il n'y a pas d'autocompletion, les outils de recherches et remplacement sont simples, mais très limités. Bref, c'est propre, mais trop limité à l'usage et il n'y a pas (à ma connaissance) d'extension possible.

Je codais en parallèle des projets en Python et en C++ en utilisant Eclipse IDE et j'avais pris gout à toutes les aides disponibles dans ces IDE qui me permettaient d'augmenter ma productivité. J'ai tenté d'utiliser R avec Eclipse mais sans que le résultat soit probant. De plus, je trouvais Eclipse très lourd et souvent pour de petites corrections je me contentais d'éditer mon code dans un petit éditeur de texte.

...arrive RStudio

RStudio m'a permis de vraiment programmer avec R et ne plus me contenter d'écrire de petits scripts sans cohérence. Il permet d'avoir un environnement parfaitement adapté à R dès l'installation. Tout (ou presque) y est : coloration syntaxique, autocomplétion avec aide intégrée, explorateur d'environnement... et en plus, intégration à GIT, tout un système pour faciliter la création de packages, le magnifique principe des projets (.Rproj) qui évitent de devoir faire des setwd() à chaque fois que l'on reprend son travail et de retrouver son environement lors de la dernière session.

rstudio

Mais mon niveau en programmation augmentait en parallèle avec mes exigences vis-à-vis de mes outils. Et je me suis retrouvé à l'étroit avec RStudio. Impossible de mettre deux pages de codes l'une à côté de l'autre, ma coloration syntaxique imparfaite, pas de snippet personnalisable, un système assez lourd surtout pour éditer de petits fichiers.

Et surtout, lorsque je devais éditer de petits bouts de codes d'un autre langage (Python, C++, Bash, un Makefile) il fallait relancer un autre éditeur.

Je me suis donc mis en quête d'un éditeur de texte unique. Pendant un moment Sublime Text était un bon candidat, jusqu'à ce que je me décide de me lancer avec VIM.

... pour en arriver à VIM

Aujourd'hui j'utilise presque exclusivement VIM pour l'ensemble de mes projets. Il m'a fallu deux mois pour m'y habituer et retrouver à peu près la même productivité que celle que j'avais avant. Mais j'y ai gagné en flexibilité, j'ai un éditeur de texte pour tous les fichiers que je traite et je n'utilise presque plus ma souris.

Une session de R ressemble désormais à ce que l'on voit sur l'image suivante :

[caption id="attachment_350" align="aligncenter" width="604"]
[Vim et R]8 Session de travail avec Vim et R. La sortie graphique (X11) est sur un autre écran.[/caption]

Ce fut assez difficile à mettre en place, mais j'ai désormais énormément gagné en flexibilité. Tout passe par le trio iTerm + Tmux + Vim. Je peux dimensionner les fenêtres comme je le souhaite, en avoir autant que nécessaire, disposer de tous les outils en ligne de commande sous les doigts. Je ne passe plus mon temps à faire des copier-collé et à tenter de cliquer partout. Je peux passer plusieurs heures de suites sur un projet sans lâcher mon clavier et ne jamais toucher ma souris.

De plus j'ai vraiment l'impression de maîtriser mon outil.

Autre avantage : je peux enfin travailler sur mon 11 pouces en adaptant en permanence la configuration des fenêtres, comme le montre l'image suivante.

[caption id="attachment_376" align="aligncenter" width="300"][Vim + R + Git + Tmux sur un 11 pouces]11 Vim + R + Git + Tmux sur un 11 pouces[/caption] J'ai découvert des outils fantastiques comme les fuzzy finders ou les snippets personnalisables.

Conclusion

Je suis désormais suffisamment convaincu par cette approche pour continuer à l'utiliser. Pour l'instant, après deux mois de pratique, je suis juste arrivé à mon avis à mon niveau de productivité initial, mais je ne sais que j'ai une nouvelle marge d'évolution possible alors qu'avant je plafonnais.

Je prévois de décrire dans un prochain billet comment fonctionne mon cet environnement de travail actuellement et dans un autre comment l'installer.