[vim] vim, l’IDE et les plugin 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 utile.

Navigation entre action et template

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 se 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 raccourcie 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

Naviguer dans notre projet

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

A ce moment là, vim va un peu mouliner jusqu’à trouver tout les fichiers respectant le filtre et va vous afficher votre arbre remplis sur la gauche. Une des première chose à faire est de refermer tout 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 tout les dossier
  • 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 tout les fichiers du dossier courant dans des nouvelles fenêtre horizontales.

Le folding PHP

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

A 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 tout ses enfants
  • zc : Fermer le fold courant
  • zC : Fermer le fold courant et tout ses parents
  • zM : Fermer tout les fold
  • zj : Aller au fold suivant
  • zk : Aller au fold précèdent
Si vous avez apprécié cet article, pensé à laissé un commentaire ou vous abonner au flux RSS feed.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *