• [^] # Re: Fasd

    Posté par . En réponse au journal Chercher des répertoires bookmark avec un fuzzy finder. Évalué à 2.

    Je viens de tester, ça a l'air pas mal, en effet. Ceci dit, je crois que je vais rester avec mon d et mon o pour plusieurs raisons.

    La principale, c'est que la recherche « intéractive » de fasd n'est pas vraiment intéractive (peut-être l'est-elle avec bash ou zsh, je sais pas, même si j'en doute). Au sens, avec fzf, même avec des dizaines de milliers d'entrées, au fur et à mesure qu'on écrit on a en temps réel instantanément et sans bloquer l'interface (concurrent) une sélection qui se fait en fonction du chemin, pas besoin de taper un un numéro en regardant une liste, ni d'essayer de prévoir à l'aveugle si on a bien intuité le motif qui réduit la recherche (dans fasd comme dans autojump, d'ailleurs). Et même avec des milliers d'entrées, quelques touches suffisent à sélectionner un item en pratique. Et o a l'avantage qu'il ne nécessite pas d'avoir visité quelque chose avant : si c'est un dépôt git, il fera git ls-files, si c'est un dépôt fossil, fossil ls, et sinon il lance ag -g "" (ou find avec de bonnes options si le silver searcher ag n'est pas là) ce qui permet d'éviter quand même pas mal de fichiers qui n'ont pas l'air d'être du texte.

    Du coup, en pratique, on fait d jusqu'à un répertoire, puis o pour sélectionner un fichier : en fait, o est parfois même utilisable directement depuis le $HOME avec un disque dur non ssd grâce à la limitation de profondeur de recherche lorsqu'il sent qu'il y en a trop. Avec un disque dur ssd, limite tout ça est presque inutile.

    En fait, fzf est tellement fort, qu'il n'a même pas vraiment strictement besoin (même si ça aide) de quelque chose comme o ou d : si locate a sa base de données actualisée, parfois on peut se contenter de fzf uniquement : locate / | fzf ; avec mon ordi pas terrible c'est faisable, même si avec un petit délai : avec plus d'un million de fichiers, en écrivant juste quelques lettres on trouve en fait ce qu'on veut assez vite.

    La deuxième raison, moins importante, c'est que d est un peu plus simple et ne nécessite pas de remplacer tout usage du cd built-in par le fasd_cd.