Basherie rapide avec des bouts de Vim dedans

Publié le par greg

Bonsoir à tous,

D'abord la basherie

entre deux articles sur Doctrine, je profite de quelques minutes de répis pour vous soumettre (enfin) la basherie dont je me sers depuis quelques semaines maintenant : la récupération des arguments de la ligne de commande précédente.

Vous pouvez récupérer de façon simple à l'aide de l'opérateur !:n (ou n est un entier) le nième argument de la ligne de commande précédente. C'est très pratique car d'une commande à l'autre on se sert souvent deux fois de mêmes arguments, typiquement, bouger un fichier et faire un lien symbolique dessus :
 shell$ mv frontend.php frontend_prod.php
shell$ ln -s frontend_dev.php !:1
ln -s frontend_dev.php frontend.php

Le shell est en plus assez sympa pour vous afficher l'expansion réalisée sous votre commande, on ne pourra pas dire que bash n'est pas user-friendly sur le coup.

Puis les bouts de Vim

Deux nouvelles choses sont venues agrémenter ma vie de Vimiste ces derniers mois. La première et pas des moindres dans mon travail de symfoniste est l'utilisation des marqueurs majuscules. Les marqueurs majuscules fonctionnent exactements comme leurs homonymes minuscules à part qu'ils ont la particularité d'être persistants et multi-fichiers ... je m'explique : une fois placés, à l'aide d'un «mX» ou X est le marqueur, les marqueurs suivants par exemple dans un projet symfony :

marqueur pseudo fichier
S Schéma /config/schema.yml
F Fixtures /data/fixtures/fixtures.yml
A Action /apps/appli_courante/modules/module_courant/actions/actions.class.php
R Routing /apps/appli_courante/config/routing.yml

Etc etc ... Cela veut dire que si je veux jeter un coup d'oeil ou modifier le routing, un coup de «'R» voila le fichier chargé dans mon éditeur. Imbattable et cela ne pose aucun problème avec l'utilisation de Project.

 Les admins système préfèreront sans doute mettre des marqueurs sur les fichiers de conf d'Apache ou Postgresql en choisissant judicieusement les marqueurs A et P par exemple ... Comme ces marqueurs sont persistants il est inutile de les remettre à chaque fois que vous lancez Vim.

Deuxième petite chose intéressante : la navigation entre les onglets grâce à «gt» et «gT» (Go Tab) qui facilite quand même grandement la vie.

@bientôt.
Publicité

Publié dans vim

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
V
Merci d'avoir répondu si vite ... Personnellement, j'utilise vim au quotidien au bureau et à la maison, et il y a une petite chose que j'affectionne particulièrement, ce sont les snippets qui permettent d'avoir une complétion automatique "à la TextMate" pour différents langages de programmation. En plus, on peu personnaliser les fichiers de conf avolonté par exemple :dans le fichier .vim/after/ftplugin/perl_snippet en ajoutant la ligne :exec "Snippet perl #!/usr/bin/perl -wuse strict;use utf8;use Encode;".st.etdès que l'on tape perl ça met :#!/usr/bin/per -wuse strict;use utf8;use Encode;Et hop !De la même façon dans mon .vimrc j'ai programmé des touches :map :! ./%                      # éxécute le fichier courantmap :Ex         # lance le VimExplorerVoilà, je me suis même permit de faire un lien vers votre site sur mon blog : http://rabah.dyndns.orgA+
Répondre
V
Bonjour,Merci pour vos articles supers intéressants ! Je viens sur votre site presque toutes les semaines ... Mais depuis Janvier rien de nouveau :(
Répondre
G
<br /> Bonjour Vincent,<br /> <br /> Merci pour votre intérêt. J'avais besoin de prendre l'air et faire autre chose que de l'informatique de mon temps libre pendant quelques temps. Je vais bientôt revenir avec les 2 derniers articles<br /> sur Doctrine et quelques autres bonnes choses.<br /> <br /> N'hésitez pas à poster des idées de sujets qui vous intéresseraient, je ne vous promet pas de les traiter mais toute idée mérite considération :)<br /> <br /> <br />
N
Très bonne idée ces marqueurs ! Je me demande pourquoi je n'ai pas utilisé ce système pour mon switch actions/template.Par contre, comment définis-tu ces marqueurs 'relatifs' ?J'ai regardé la commande :mark mais apparemment ca ne sert qu'a définir un marqueur dans le fichier courant. Faut-il éditer manuellement le .viminfo ?
Répondre
G
<br /> Les marqueurs ne peuvent être placés que dans le fichier courant, ils ne sont pas faits pour autre chose.<br /> C'est (à mon humble avis) délicat de vouloir placer automatiquement des marqueurs car rien ne dit que c'est parceque tu édites l'action executePlop que ton template sera plopSuccess.php, il peut<br /> être plopError.php voire même indexSuccess.php. Quand bien même le template serait le bon, il y a une probabilité non négligeable que l'information cherchée puisse être dans un partial.<br /> <br /> Un truc qui saut directement à la bonne règle de routing ... pourquoi pas mais avec symfony 1.2 ça complique un peu le système.<br /> <br /> <br />