Quelques trucs avec ViM #2

Voici la suite du billet Quelques trucs avecViM #1 qui, comme le suggèrait le #1, a bien une suite :) Voici donc 3 petits trucs qui me simplifient la vie presque tous les jours. Note : les captures d'écran sont des GIF animés, il est possible de les revoir en cliquant dessus pour faire apparaître la page dédiée à l'image.

Mise en valeur de la ligne courante

Une fonctionnalité que l'on voit dans beaucoup d'éditeurs de texte avancés ou IDE est la mise en valeur de la ligne courante. Depuis vim 7, disponible depuis Ubuntu Edgy Eft, cette fonctionnalité est directement dans l'éditeur. Dans un terminal, la ligne est soulignée alors que dans la version graphique, il est possible de définir une couleur de fond, pour ma part, j'utilise les lignes suivantes dans mon .gvimrc pour avoir une ligne légèrement surlignée de bleu/gris dans la version graphique uniquement :

 

set cursorline
hi CursorLine guibg=#e7ebff

 

Les folds sur mesure

Beaucoup d'éditeurs proposent la possibilité de "pliage/dépliage" (fold/unfold) des structures de contrôle et/ou des commentaires. Il est possible de faire la même chose dans vim mais j'apprécie assez peu cette fonctionnalités. Par contre, il est possible de définir des zones "pliables" sur mesure ce qui peut être pratique pour être à deux endroits éloignés dans le code sans ouvrir deux buffers sur le même fichier. Pour commencer à l'utiliser, le plus simple est de passer en mode visuel en tapant v depuis le mode commande, de sélectionner quelques lignes de texte avec les déplacements habituels et puis de faire zf pour créer la zone pliée. Pour la déplier, il suffit de taper zo (Fold Open), pour la replier zc (Fold Close). Si on n'a plus besoin de la zone, on peut faire zd (Fold Delete) pour supprimer la possibilité de pliage/dépliage, le texte reste intact. Il est possible d'avoir un repère visuel où des zones pliables sont positionnées en fixant la variable foldcolumn, par exemple à 2 en tapant ":set foldcolumn=2", ce qui donne :

Les zones sont imbricables et beaucoup de raccourcis existent pour les manipuler. Plus d'informations le folding dans l'aide de vim.

Les abbréviations

Lorsqu'on écrit du code, on utilise régulièrement les mêmes constructions syntaxiques, il peut être avantageux de définir des abbréviations permettant de taper rapidement ces séquences. Dans eZVim, un plugin vim pour eZ Publish, j'en définis quelques unes, par exemple :

 

iabbrev ezfe {foreach __ as $k => $val}<CR><CR>{/foreach}
match Error / __ /

 

La première ligne indique à vim de remplacer la chaîne ezfe suivie d'un espace par le reste de la ligne (foreach) en mode insertion. <CR> représente une frappe sur la touche "Entrée". La seconde ligne dit à vim de reconnaître la chaîne " __ " comme une erreur ce qui permet de voir rapidement les points à complèter dans ce qui vient d'être inséré pour obtenir un code syntaxiquement correct :

Plus d'informations sur les abbréviations dans l'aide de vim.

Tags : Truc, ViM, Ubuntu, Linux

» Commentaires

- Merci pour cet article (#65124) par djib le 16 Avril 2007 à 00:36
Merci pour cet article, je vais encore pouvoir gagner en productivité avec mon éditeur préféré :)
- mise en valeur de la ligne courante (#65128) par darkagonik le 16 Avril 2007 à 19:02
Et quel est le raccourci clavier pour mettre en valeur la ligne courante ? En lisant le manuel j'ai pas vraiment compris...
- Les folds sous Emacs (#65129) par Jean-Christophe BECQUET le 17 Avril 2007 à 10:05
Merci pour ces trucs qui permettent de mieux prendre la mesure de la puissance de cet éditeur.

Une question qui pourrait être perçue comme un troll mais tout à fait sérieuse. Existe t-il un équivalent des folds sous Emacs ?
- Vim marks (#67707) par Jérôme le 27 Mars 2009 à 08:35
Bonjour Damien,

une alternative au folding (zf, zd etc..) est d'utiliser les VimMark.

Un exemple rapide :

- Crée un fichier de 1000 lignes, et mets ton curseur à la fin du fichier (taper 'G' pour aller plus vite).
- Taper 'mb'
- Revenir au débug du fichier (taper 'gg' pour aller plus vite)
- Taper '`m' (soit backtick suivi de b)
- Te revoilà à la fin du fichier, c'est à dire là ou tu as posé une marque.

La paire 'mX' suivi de '`X' est assez puissante car tu peux poser autant de marque que tu le souhaite.

Attention cependant, avec nos claviers français, on peut avoir des voyelles accentuées (comme à, ò, ù etc, par exemple), du coup si tu fais 'ma' puis '`a' ça n'ira pas car Vim ne comprendra pas ça (je crois qu'il y un workaround pour ça, mais je ne suis plus très sur), du coup la solution simple c'est de n'utiliser que des consonnes, ce qui laisse quand même pas mal de possibilités.

:help m pour plus d'infos.

» Trackback

Aucun trackback

Les trackacks sont désactivés

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.

Login