lundi 9 juillet 2007

:map sb mw"wdibc%"wp'wh

Ah ça c'est du beau titre n'est-ce pas ?

C'est mon dernier hack Vim. Or comme un blog est essentiellement destiné à étaler la satisfaction de son ego au monde entier, je ne tiens pas à vous le monter.

À quoi il sert ? Avec ce mappage, maintenant quand je tape la commande sb dans une parenthèse, la parenthèse disparaît.
Exemple :
Bonjour (tout) le monde
devient
Bonjour tout le monde

lorsque je tape sb quand mon curseur est sur une des lettres de "tout".

Explications :

mw place un tag nomé "w" à l'endroit de mon curseur

"w dit que la prochaine chose qui va être supprimée doit être sauvegardée dans le registre w

dib supprime le contenu de la parenthèse dans laquelle je me trouve (lequel contenu se trouve donc enregistré dans le registre w)

À ce moment, dans l'exemple il reste
Bonjour () le monde

et le curseur est sur ).

c% supprime tout jusqu'à l'ouverture parenthèse correspondante. Càd que comme je suis sur ), il va supprimer jusqu'au (. Comme c'est une commande c, on passe en mode insertion

repasse en mode commande

"wp place ce qui se trouve dans le contenu du registre w, c'est à dire le contenu de la parenthèse initialle

'w me ramène à l'endroit du tag w, c'est à dire là où était mon curseur au départ. Mais pas de bol, entre le début et maintenant, il y a une parenthèse ouvrante ( qui a disparue, mon curseur est donc un caractère trop à droite

h bouge le curseur d'un caractère vers la gauche


Moralité :

Comme expliqué dans un post précédent, LaTeX est le seul traitement de texte humainement acceptable (Word, OOo et compagnie sont nuls point barre); maintenant je viens d'établir que Vim est le seul éditeur de texte utilisable [hein quoi ? on me parle d'Emacs dans l'oreillette...].

Vive LaTeX, vive Vim, vive KDE et vive GNU-Linux ...
.
.
.
et qu'on ne me parle pas de troll !

5 commentaires:

F. a dit…

ouais ben moi, je prefere quand meme emacs
parce que une macro dans emacs c'est supers simple a faire.

moky a dit…

En fait je n'ai jamais utilisé emacs ... c'est pour ça que je me permet d'en parler. Si je savais de quoi je parlais, je devrais commencer à donner des arguments et être nuancé ...

Enfin, tu vois quoi; c'est toujours beaucoup plus simple de parler de ce qu'on ne connais pas, quand on veut avoir un avis tranché et un ton péremptoire :)
[on me dit dans l'oreillete que je m'enfonce ... je sors]

F. a dit…

:-)

Anonyme a dit…

J'ai pas compris : c'est quoi la finalité de tout ça? ":map sb mw"wdibc%"wp'wh"

moky a dit…

Sacha > Quand j'ajoute cette ligne dans ~.vimrc (le fichier de configuration de Vim), ça crée la commande sb.
Le but de cette commande est d'enlever les parenthèses autour d'un mot ou d'une phrase.
Prenons par exemple la phrase

Ceci est un mapage (inutile) pour Vim

et que mon curseur est sur le «n» de «inutile». À ce moment je tape «sb» et j'obtient

Ceci est un mapage inutile de Vim

avec mon curseur toujours sur le «n». Les parenthèses sont enlevées.

Ouais, c'est tout bête, et ça ne sert à rien. Mais il y a un adage chez les ados qui dit que le programmation c'est comme la [MOT_À_COMPETER] : quand on le fait on trouve ça génial, et puis après on se demande pourquoi on l'a fait.