J'ai écrit une solution pour ma question (lors d'un atelier) de navigation entre différents répertoires.
Il s'agissait de trouver rapidement des fichiers dans les dossiers où se trouvent mes fichiers org. Ces quelques dossiers ont mon home comme parent commun, mais se trouvent assez bas dans l'arborescence. Helm-find est lent sur ~, les fichiers sont trop nombreux pour être dans les récents, et c'était pénible de naviguer après un C-x C-f.
Je me suis inspirée de Browser bookmarks in helm et du code de helm-find. Voici ma solution.
- Je définis une liste de dossiers préférés.
- J'appelle un prompt qui me propose la liste.
- Je donne mon choix en argument de helm-find-1.
- Je lie la fonction à un raccourci.
`(defvar perso/dir-list
'(
("emacs" "~/.emacs.d/")
("alias1" "~/dir1/dir11/dir111/dir1111/")
("alias2" "~/dir2/dir22/dir222/dir2222/")
)
"Liste prédéfinie des dossiers les plus fréquentés"
)
(defun perso/find-in-dir-list ()
"Chercher un fichier dans le répertoire choisi parmi ma liste"
(interactive)
(let ((directory
(helm-comp-read "Naviguer dans : " perso/dir-list)))
(helm-find-1 (car directory))))
(global-set-key (kbd "C-c b") 'perso/find-in-dir-list)`
Maintenant que je le vois écris, ça ne me semble pas sorcier mais ça m'a pris des jours... Si ce n'est pas propre, je prends toutes les suggestions. Et si ça sert à quelqu'un, tant mieux !