Une commande locate interactive dans Emacs avec counsel et ivy-mode
Sur notre système GNU/Linux on a la commande locate
qui nous permet
de chercher des fichiers sur tout le système. Emacs a une interface
simple à locate: M-x locate
qui demande une expression régulière
puis on obtient les résultats dans un nouveau buffer.
Avec counsel-locate
on peut voir les résultats dans le mini-buffer
de manière interactive, appliquer des actions sur un ou des résultats,
et quelques trucs en plus.
Quand on tape counsel-locate
on obtient un mini-buffer de cette
sorte:

On retrouve des indications explicites qui ressemblent fortement à une
hydra. C'est C-o
qui fait apparaître le menu hydra. On peut choisir
et définir le type d'action à effectuer pour ouvrir le fichier
(touches wsa
, ouvrir avec emacs, avec xdg-open, avec une commande
personnalisée), et d'autres. Je vous laisse découvrir et vous reporter
à l'article de l'auteur:
http://oremacs.com/2015/07/02/counsel-locate/
Pour installer ça, si vous avez déjà ajouté la source de paquets MELPA, y'a plus qu'à
M-x package-install RET counsel RET
counsel
est une collection de commandes Emacs qui utilisent Ivy,
lequel est un système de complétion interactif (comme ido
mais un
peut plus complet maintenant).
Comme alternative j'utilisais aussi helm-locate qui marche très bien (fournie avec helm), avec une différence sur la regexp (on doit écrire une vraie regexp alors qu'avec counsel on peut écrire différents termes séparés par un espace, par exemple "python.*pdf" ou "python pdf") et helm-locate propose moins d'actions possibles (aucune en fait, juste d'ouvrir un fichier en gardant la session). Pour définir quel programme utiliser pour chaque extension, j'utilise openwith (sur melpa).
Et voilà, encore une chose plus sympa à faire dans Emacs que dans son shell !