mageekblog - Mot-clé - pluginLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearVim, un besoin, un plug-in !urn:md5:5628b41d56fac01b0c1f88e0ee23ca3c2009-08-07T16:27:00+02:002010-03-15T17:00:09+01:00mageekguyVimpluginsherlockvim<p>Depuis quelque temps, je pestais lorsque je voulais effectuer un chercher/remplacer dans <a href="http://www.vim.org/">vim</a> (un <code>:s</code> pour les initiés, pour les non-initiés, <a href="http://www.vim.org/download.php">téléchargez vim</a>, installez-le et faites un <code>:h substitute</code>).</p>
<p>En effet, lorsqu'on ne sait pas exactement ce que l'on veut remplacer, ou que l'on est un fainéant et/ou que l'on n'a pas envie d'avoir le bout des doigts carrés, ce qui est mon cas, il faut commencer par faire une recherche, récupérer le résultat de cette recherche, et enfin effectuer la substitution.</p>
<p>Il n'est pas possible de dire que cette procédure soit bien efficace...</p> <p>J'ai donc décidé d'écrire un plug-in pour <a href="http://www.vim.org">vim</a> qui permet d'avoir de la <a href="http://fr.wikipedia.org/wiki/Compl%C3%A9tion">complétion</a> après le caractère <code>/</code> dans la ligne de commande.</p>
<p>Ainsi, avec <a href="http://www.vim.org/scripts/script.php?script_id=2731">sherlock.vim</a>, si vous faite le raccourci C-Tab après avoir tapé la commande <code>:%s/GLO</code> dans la ligne de commande, la châine de caractères <code>GLO</code> de la ligne de commande sera remplacée par la chaîne de caractères commencant par <code>GLO</code> à partir de la position du curseur dans le buffer, par exemple <code>GLOBAL</code>.</p>
<p>Et si vous continuer à faire <code>C-Tab</code> (soit Contrôle-Tabulation), vous ferez cela pour chacune des chaînes de caractères commencant par <code>GLO</code> dans le buffer.</p>
<p>C'est à l'usage tellement pratique que j'ai implémenté la même fonctionnalité pour les commandes débutant par <code>?</code> et <code>/</code>.
</p>
<p>Pour ces deux cas, la complétion est immédiatement active via <code>C-Tab</code> et <c-s-tab>, sans avoir besoin de taper le caractère <code>/</code>.</c-s-tab></p>
<p>Evidément, il est possible également possible de faire de la complétion à partir des chaînes de caractères situées avant le curseur, avec <code>C-S-Tab</code>.</p>
<p>Enfin, <a href="http://www.vim.org/scripts/script.php?script_id=2731">sherlock.vim</a> déplacera votre curseur sur chacune des occurences qui auront été utilisées pour effectuer la complétion de la ligne de commande, en dépliant le code au besoin.</p>
<p>Pour ceux que le code intéresse, il est disponible dans <a href="http://svn.mageekbox.net/repositories/vim/trunk">mon dépot subversion dédié à vim</a>.</p>http://blog.mageekbox.net/?post/2009/08/07/Vim%2C-une-id%C3%A9e%2C-un-plug-in...#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/60Plus que 4 !urn:md5:5a61edac528eb0417ab70c036e7694652009-03-04T17:57:00+01:002009-03-04T18:07:59+01:00mageekguymyprojectspluginvim <p>Plus que 4 quoi ?</p>
<p>Plus que 4 téléchargements de <a href="http://www.vim.org/scripts/script.php?script_id=2556">myprojects.vim</a> pour franchir la barre symbolique des 100 téléchargments.</p>
<p>Je dois dire que je suis assez heureux, car je ne m'attendais pas à cela, surtout en aussi peu de temps et sur quelque chose d'aussi confidentiel qu'un plug-in vim.</p>
<p>En effet, même si ce n'est pas non plus un raz-de-marée, ce n'est pas rien, puisque cela représente un peu plus de quinze téléchargements par jour, soit un peu plus de 1 toutes les deux heures.</p>
<p>Il faut dire que <a href="http://www.vim.org/scripts/script.php?script_id=2556">myprojects.vim</a> a beaucoup évolué depuis sa première version, aussi bien au niveau fonctionnel qu'au niveau du code, et que j'ai encore quelques idées à développer...</p>http://blog.mageekbox.net/?post/2009/03/04/Plus-que-4#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/34Plug-in vimurn:md5:49bdbe347308dbaeb182ba405c4293822009-02-26T10:04:00+01:002010-03-15T17:01:17+01:00mageekguyVimmyprojectspluginvim<p>Je viens de mettre officiellement à disposition <a href="http://www.vim.org/scripts/script.php?script_id=2556">mon premier plug-in</a> vim.</p>
<p>C'est un clone de <a href="http://www.vim.org/scripts/script.php?script_id=69">project.vim</a>, qui utilise l'indentation au lieu de <q>{</q> et <q>}</q> pour définir les répertoires.</p> <p>Il est encore très fruste, puisqu'il s'agit d'une version alpha.</p>
<p>En effet, contrairement à mon habitude de livrer un produit largement finalisé, j'ai décidé de suivre les conseils de <a href="http://www.onpk.net">certain</a> en suivant l'adage <q>release early, release often !</q></p>
<p>Il n'y a donc pas de documentation, et le fonctionnement, notament au niveau des raccourcis claviers, est donc susceptible d'évolutions mineures ou majeures.</p>
<p>Après ces avertissements, je vais maintenant vous présenter ses fonctionnalites, accessibles via le raccourci <kbd>leader-t</kbd>, <kbd>leader</kbd> étant par défaut <kbd>\</kbd>.</p>
<p>Basiquement, <a href="http://www.vim.org/scripts/script.php?script_id=2556">myproject</a>, puisque c'est son nom, vous permet de disposer d'une fenêtre sur la gauche de votre écran qui contient une liste de répertoires, correspondant chacun à un projet et son arborescence.</p>
<p>Vous pouvez ouvrir les fichiers de vos projets via un double-clic, ou à l'aide de la touche <kbd>Enter</kbd>.</p>
<p>Lors de l'ouverture d'un fichier d'un projet, le répertoire de travail de <a href="http://www.vim.org">vim</a> est automatiquement modifié pour correspondre à celui du projet.</p>
<p>Si vous utilisez les touches de modification <kbd>Shift</kbd> ou <kbd>Ctrl</kbd> avec le double-clic ou <kbd>Enter</kbd>, votre fenêtre d'édition sera séparée respectivement horizontalement et verticalement.</p>
<p>La création d'un projet se fait via le raccourci <kbd>Ctrl-c</kbd>.</p>
<p><a href="http://www.vim.org/scripts/script.php?script_id=2556">myproject</a> va alors vous demander successivement le nom de votre projet, son répertoire de travail et le filtre qu'il devra appliquer sur les fichiers contenu dans le répertoire du projet.</p>
<p>Petite précision au sujet du filtre, il s'agit d'un <a href="http://vimdoc.sourceforge.net/htmldoc/pattern.html">motif</a> vim.</p>
<p>Vous disposez donc de la puissance des expressions régulières pour sélectionner les fichiers que vous voudrez voir figurer dans votre projet.</p>
<p>Le raccourci <kbd>Ctrl-t</kbd> génere le fichier de tag <q>.tag</q> à la racine de votre projet, à l'aide de exctags.</p>
<p>Lors de l'ouverture d'un fichier du projet, <a href="http://www.vim.org">vim</a> est configuré pour utiliser ce fichier s'il existe.</p>
<p>Attention, vous pouvez définir un filtre sur chaque sous-répertoire de votre projet, mais la version actuelle ne les conservera pas lors d'un rafraichissement du projet, possible via le raccourci <kbd>Ctrl-r</kbd>, qui provoque la mise à jour du répertoire dans lequel se trouve le curseur.</p>
<p>Enfin, le raccourci <kbd>Ctrl-g</kbd> vous permettra de faire un <code>vimgrep</code> récursif sur tous les fichiers du répertoire dans lequel se trouve le curseur, en fonction du filtre.</p>
<p>J'espère vous avoir donné envie de découvrir le reste des fonctionnalités de <a href="http://www.vim.org/scripts/script.php?script_id=2556">myproject</a> ainsi que ses futures évolutions.</p>http://blog.mageekbox.net/?post/2009/02/26/Plug-in-vim#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/30