Lerm-IT

Blog traitant de technologies informatiques. Logiciel libre, AdminSys, DevOps et GNU/Linux !

20 Sep 2010

[vim] vim, l’IDE et les plugins pour symfony (2/3)

Les addons de vim

Vim à la possibilité d'étendre ses possibilités au moyen de petit (ou pas) script. Nous allons en voir quelques-uns ici qui nous serons utiles.

Nous allons commencer notre balade avec un script qui va nous permettre au moyen de la touche <F8> de passer d’un fichier action à un fichier template et inversement.

Cet addon s’appelle symfony.vim et est disponible ici dans sa version 0.7. L’installation de ce script sera assez simple. Nous allons récupérer le script, le placer dans le dossier ~/.vim/plugin/ et l’activer dans notre fichier vimrc. En route !

$ wget http://www.vim.org/scripts/download\_script.php?src\_id=8739
...
100%[======================================>] 7 876       --.-K/s   ds 0,1s
2010-09-01 23:37:43 (61,9 KB/s) -- «download\_script.php?src\_id=8739" sauvegardé [7876/7876]
$ mv download\_script.php?src\_id=8739 symfony.vim
$ mv symfony.vim ~/.vim/plugin/

Ajoutons à notre fichier vimrc ces quelques lignes

silent map <F8> :SfSwitchView <CR>

Ceci nous permet de lier la touche [F8] à l’action de changement de fichier entre action et template.

Fermer les balises HTML

Nous allons utiliser un deuxième script qui va nous permettre de fermer les balises HTML avec le raccourci clavier [CTRL] + [_]. Le plugin se trouve ici dans sa version 0.9.1

L’installation est semblable

$ wget http://www.vim.org/scripts/download\_script.php?src\_id=4318
...
2010-09-01 23:46:40 (30,2 KB/s) -- «download\_script.php?src\_id=4318" sauvegardé [12853]
$ mv download\_script.php?src\_id=4318 closetag.vim
$ mv closetag.vim ~/.vim/plugin/

Cette fois nous n’allons plus lier le script à une combinaison de touche mais à un type de fichier. Ici HTML, XML, XSL et PHP

au Filetype html,xml,xsl,php source ~/.vim/plugin/closetag.vim

Un des plugins les plus utiles pour transformer réellement vim en IDE est le plugin “Project” qui va nous permettre de voir l’arborescence de notre projet et de naviguer entre les dossiers de celui-ci.

Le fonctionnement de Project est assez simple mais aussi très astucieux. En effet le plugin génère un fichier .vimproject à la racine de votre répertoire personnel qui servira de base à toute la hiérarchie, c’est-à-dire qu’il contiendra les noms des fichiers, leurs chemins, leurs dossiers parents, etc … Ce fichier n'étant pas super lisible tel quel, Project nous l’affiche de manière plus “userfrendly” à l’aide de la commande :Project. Passons tout de suite à l’installation, nous reviendrons sur l’utilisation plus tard.

Comme pour les autres plugin l’installation est très simple. Nous récupérons la dernière version à cette adresse, décompressons l’archive dans ~/.vim (il y a deux dossiers : plugin – le plugin – et doc – qui est la documentation du plugin et que nous allons laisser dans le dossier ~/.vim/doc/).

$ wget http://www.vim.org/scripts/download\_script.php?src\_id=6273 -O ~/.vim/project-1.4.1.tar.gz
...
$ tar xvf ~/.vim/project-1.4.1.tar.gz
plugin/project.vim
doc/project.txt
$ tar xvf project-1.4.1.tar.gz
plugin/project.vim
doc/project.txt

Notre plugin est installé !

Pour l’utiliser vous avez deux méthodes :

  • Au lancement : Lancer vim avec l’option +Project
  • Depuis un vim déjà en cours d’exécution avec la commande :Project

Une fois dans vim vous remarquerez une nouvelle “fenêtre” sur la gauche. C’est votre explorateur de projet qui est actuellement vide. Pour le remplir il faut utiliser la commande “C” qui va nous posez quelques questions :

  • Enter the Name of the Entry: Nom du projet que vous souhaitez ajouter à votre arbre
  • Enter the Absolute Directory to Load: Chemin absolut vers votre projet comme le retourne la commande pwd
  • Enter the CD parameter: Comme la question d’avant, le chemin absolut vers votre projet comme le retourne la commande pwd.
  • Enter the File Filter: Une liste de masque, séparés par des virgules, selectionnant les fichiers que vous souhaiter voir apparaitre dans votre arbre. Par exemple : *.php, *.yml, *.ini, *.txt, *.css, *.js, *.xml, *.xsl

À ce moment-là, vim va un peu mouliner jusqu'à trouver tous les fichiers respectant le filtre et va vous afficher votre arbre rempli sur la gauche. Une des premières chose à faire est de refermer tous les “fold” avec la commande zm pour avoir une vue plus présentable. “Project” fonctionnant sur un fichier pour que votre arbre soit de nouveau là quand vous ré-ouvrirez vim faite une petite sauvegarde à l’aide de :w. Voyons maintenant une liste de commande pour se servire correctement de Project.

  • [CTRL]+[w] : Changer de fenêtre. (Par exemple de l’arbre Project au document en cours d'édition)
  • zo ou [Entrer] : ouvrir le dossier/fichier sous le curseur
  • zc ou [Entrer] : fermer le dossier sous le curseur
  • zm : fermer tous les dossiers
  • R : Rafraichir le contenu du dossier courant et ses sous dossiers.
  • r : Refraichir le contenu du dossier courant.
  • g : Rechercher une expression dans le contenu des fichiers du dossier courant
  • G : Rechercher une expression dans le contenu des fichiers du dossier courant et ses sous dossiers.
  • s : Ouvre le fichier sous le curseur dans une nouvelle fenêtre horizontale
  • S : Ouvre tous les fichiers du dossier courant dans des nouvelles fenêtre horizontales.

Le folding PHP

Avec Project nous avons vu que les dossiers pouvaient s’ouvrir et se fermer (normal, me direz vous !), ceci s’appelle du folding. Cette fonctionnalité bien connue de tout les IDE est aussi disponible sous vim via le plugin phpfolding.vim . Je ne vous refais pas l’installation c’est toujours et encore le même principe.

À partir de maintenant vous aurez dans vos fichiers PHP un folding automatique. Voici comment s’en servir :

  • zo : Ouvrir le fold courant
  • zO : Ouvrir tout le fold courant et tous ses enfants
  • zc : Fermer le fold courant
  • zC : Fermer le fold courant et tous ses parents
  • zM : Fermer tout les fold
  • zj : Aller au fold suivant
  • zk : Aller au fold précèdent