17/07/2010

Que zsh soit avec toi

Zsh est un shell Unix qui peut être utilisé de façon interactive, à l'ouverture de la session ou en tant que puissant interpréteur de commande. Je ne suis pas là pour le présenter mais seulement pour montrer une tricks super utile.

Juste à titre d'exemple pour ceux qui connaissent pas, imaginons que votre parton vous appelle et vous demande de modifier dans un répertoire du serveur de dev tous les fichier .html en .htm.

En version POSIX ca donnerait :

for i in *.html; do mv -i $i ${i%.html}.htm; done

Avec zsh :

zmv '(*).html' '$1.htm'

Plus sexy non ?

Bref, la tricks c'était de pouvoir choisir les délimiteurs lorsqu'on fait un meta-backspace, ça peut être super pratique lorsqu'on s'est trompé dans un PATH en ayant choisi "/" comme délimiteur, il suffit pour pour cela d'éditer votre .zshrc et y mettre :

bindkey -e
bindkey "^H" backward-delete-word
WORDCHARS="${WORDCHARS:s#/#}"

Ici le bindkey -e, c'est pour se mettre en mode emacs et notre meta-backspace deletera bien les words délimités par un "/".