Trois outils. Chacun remplace un binaire POSIX vieux de 40 ans. Ensemble, ils transforment le terminal en interface plus rapide que n’importe quel explorateur graphique.

Alors oui, c’est dans les vieux pots qu’on fait les meilleures soupe et si un binaire qui a 40 ans est toujours utilisé, c’est qu’il y a une bonne raison, mais là, ce serait dommage de se privée d’une UX shell bien léchée.

fd remplace find. Même usage, syntaxe humaine :

fd "pattern"          # find . -name "*pattern*"
fd -e py              # find . -name "*.py"
fd pattern --exec cmd # find avec -exec, mais lisible

rg (ripgrep) remplace grep -r. Respecte .gitignore par défaut. 10× plus rapide que grep sur un gros arbre :

rg "TODO"             # grep -r "TODO" .
rg -l "import"        # grep -rl "import" . (fichiers uniquement)
rg --type py "class"  # grep --include="*.py" -r "class" .

fzf ajoute du fuzzy finding partout. Le couteau suisse :

# Ouvrir un fichier (remplace Ctrl+P de VS Code dans le terminal)
fzf

# Historique shell interactif
# (Ctrl+R avec fzf au lieu du reverse-search bash par défaut)

# Tuer un processus (choisir visuellement)
kill -9 $(ps aux | fzf | awk '{print $2}')

Le combo

# Chercher un fichier par nom ET contenu, ouvrir dans vim
vim $(rg -l "TODO" | fzf)

# fd + fzf = explorateur de fichiers instantané
cd $(fd -t d | fzf)

Cheatsheet

OutilRemplaceVitesseMeilleure feature
fdfind~5× plus rapideRespecte .gitignore
rggrep -r~10× plus rapideRespecte .gitignore
fzffind + sélection manuelleFuzzy matching interactif

Le point commun : ils ignorent .gitignore par défaut. Plus besoin de --exclude-dir node_modules à chaque commande. C’est le détail qui fait que tu les adoptes en une journée.