- Publié le 16 octobre 2010 à 23:58
Dans vim il est possible de sauvegarder la session courante avec la commande :mksession (ou avec l’abréviation :mks) suivi d'un nom de fichier, par exemple dans une instance de vim avec plusieurs fichiers ouverts, des buffers ou des onglets... on peut taper :
:mksession ~/test.vim
Cette commande va créer un fichier de session vim (test.vim dans ce cas) qui contient toutes les commandes nécessaires pour restaurer vim dans l'état où il se trouvait au moment où la commande est lancée. Pour restaurer la session, on peut utiliser la commande :so suivie du nom du fichier de session ou alors il suffit de lancer vim avec la paramètre -S :
vim -S ~/test.vim
Ce mécanisme est très pratique lorsque par exemple on doit redémarrer suite à une mise à jour du système mais en l'état il reste manuel. Il m'arrive en effet de temps à autre de fermer par accident le terminal qui contient vim et ainsi de perdre tout l'organisation de l'éditeur. Pour remédier à cela, il est possible de coupler cette fonctionnalité avec le système d'évènement de vim pour sauvegarder automatiquement la session à certains moments.
autocmd VimLeavePre * :mksession! ~/stopped.vim
Avec cette ligne dans la configuration de vim (.vimrc), l'état de la session sera enregistré automatiquement dans le fichier stopped.vim et il est donc aisé de récupérer son environnement suite à une fausse manipulation.
- Publié le 22 septembre 2009 à 00:31
xzoom fait partie de ces petits outils peu connus mais qui peuvent rendre de grands services. xzoom permet de d'agrandir une zone de l'écran quasiment en temps réel, en d'autres termes, à partir du moment où une zone a été choisie (en glissant sur la zone à partie de sa fenêtre), la fenêtre de xzoom se met à jour en même temps que la zone concernée (à l'inverse de xmag par exemple). Cet outil est une aide précieuse pour le montage / l'intégration HTML/CSS lorsqu'il faut caler des blocs avec plus ou moins de contrastes au pixel près.
L'exemple typique d'utilisation est de mettre la fenêtre toujours au dessus des autres dans un coin de l'écran après avoir choisi la zone sur laquelle zoomer. Il est ensuite beaucoup moins fatiguant de vérifier l'alignement correct de zones précises d'une page par un simple rafraîchissement.
Mes yeux remercient l'auteur de xzoom mais continuent de maudir Internet Explorer :-)
- Publié le 08 septembre 2009 à 23:30
J'ai plusieurs fois eu besoin de faire des substitutions dans tous les fichiers ouverts dans vim. J'avais cherché dans les flags de la commande substitute (:s) sans succès et donc systématiquement je contournais le problème à coup de lignes de bash à base de find, sed, grep et compagnie. Mais je suis tombé par hasard sur la commande :bufdo en cherchant à corriger quelques petits bugs dans eZVim le plugin vim pour eZ Publish. Du coup rien de compliqué, il suffit de préfixer toute commande par bufdo pour l'appliquer sur tous les buffers ouverts, par exemple :
:bufdo! %s/cherche/remplace/g
Le point d'exclamation permet de forcer le passage d'un buffer à un autre sans sauvegarder son contenu. Et évidemment ça marche pour autre chose que la substitution. Il est également possible d'exécuter plusieurs commandes sur chacun des buffers en les séparant avec un pipe (|), par exemple pour corriger une indentation en fonction des réglages de vim, supprimer les espaces inutiles en fin de ligne et sauvegarder le fichier, la ligne suivante devrait faire l'affaire :
:bufdo retab | %s/ *$//g | w
Il existe également :tabdo (pour les onglets), :windo (pour les fenêtres vim) et :argdo (pour les arguments de la ligne de commande).
- Publié le 11 mars 2009 à 14:03
Petit pense bête pour la prochaine fois où j'aurai besoin de faire la somme d'une liste de nombres en shell (un nombre par ligne) :
cat my_file | awk '{total+=$1}END{print total}'Par exemple, pour obtenir la taille totale des tables dans une base de données MySQL :
mysqlshow -i my_db '*' | tr -s ' ' | cut -d ' ' -f 14 | grep [0-9] | awk '{total+=$1}END{print total}'
- Publié le 27 janvier 2009 à 12:05
Un .exe pour mon Firefox sous Linux, euh oui mais non... Il est quand même dingue de devoir installer un plugin pour télécharger un fichier, pour la lecture je peux comprendre (encore que...) Dis monsieur Orange, pour le même prix (voire moins cher ;)) je peux avoir un simple lien vers un fichier sonore correspondant à mon message ?