
fzf : le fuzzy finder qui booste votre productivité en terminal
Qu'est-ce que fzf ?
fzf (fuzzy finder) est un outil en ligne de commande ultra-rapide qui permet de rechercher de manière interactive et floue dans n'importe quelle liste : fichiers, historique de commandes, processus, branches Git, et bien plus encore.
Écrit en Go, fzf est léger, sans dépendance et s'intègre parfaitement dans n'importe quel workflow terminal.
Installation
Linux
# Ubuntu/Debian
sudo apt install fzf
# Depuis Git (dernière version)
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
macOS
brew install fzf
# Installer les raccourcis clavier et l'auto-complétion
$(brew --prefix)/opt/fzf/install
Windows
# Avec Scoop
scoop install fzf
# Avec Chocolatey
choco install fzf
Vérifier l'installation
fzf --version
Utilisation de base
Recherche interactive de fichiers
Lancez simplement fzf dans un répertoire :
fzf
Tapez quelques caractères — fzf filtre les résultats en temps réel grâce à la recherche floue. Appuyez sur Entrée pour sélectionner.
Ouvrir un fichier trouvé
# Ouvrir avec vim
vim $(fzf)
# Ouvrir avec code (VS Code)
code $(fzf)
# Afficher le contenu
cat $(fzf)
Recherche dans un pipe
fzf peut filtrer n'importe quelle entrée standard :
# Filtrer la liste des processus
ps aux | fzf
# Filtrer les paquets installés
dpkg -l | fzf
# Filtrer les variables d'environnement
env | fzf
Raccourcis clavier intégrés
Après l'installation complète (fzf/install), trois raccourcis sont disponibles dans votre shell :
| Raccourci | Action |
|---|---|
Ctrl+T | Rechercher un fichier et insérer son chemin |
Ctrl+R | Rechercher dans l'historique des commandes |
Alt+C | Rechercher un dossier et y accéder (cd) |
Ctrl+R : l'historique surpuissant
# Appuyez sur Ctrl+R puis tapez quelques mots
# fzf filtre votre historique en temps réel
# Beaucoup plus pratique que le Ctrl+R classique de bash
Navigation dans fzf
| Touche | Action |
|---|---|
↑ / ↓ | Naviguer dans les résultats |
Entrée | Sélectionner |
Esc / Ctrl+C | Annuler |
Tab | Sélection multiple (mode multi) |
Shift+Tab | Désélectionner |
Options et personnalisation
Prévisualisation de fichiers
# Prévisualiser le contenu des fichiers avec cat
fzf --preview 'cat {}'
# Prévisualiser avec coloration syntaxique (bat)
fzf --preview 'bat --color=always {}'
# Limiter la hauteur de la prévisualisation
fzf --preview 'bat --color=always {}' --preview-window=right:60%
Options d'affichage
# Afficher fzf en bas du terminal (inline)
fzf --height 40%
# Inverser l'ordre (résultats en haut)
fzf --reverse
# Avec bordure
fzf --border
# Combiner les options
fzf --height 40% --reverse --border
Recherche exacte
# Par défaut, la recherche est floue
# Préfixer avec ' pour une correspondance exacte
# Exemple : taper 'config trouvera uniquement les lignes contenant "config"
# Syntaxe de recherche avancée
# ^mot → commence par "mot"
# mot$ → finit par "mot"
# 'mot → correspondance exacte
# !mot → exclure "mot"
Intégration avec Git
fzf est particulièrement puissant combiné avec Git :
Changer de branche
# Sélectionner une branche interactivement
git checkout $(git branch | fzf)
# Inclure les branches distantes
git checkout $(git branch -a | fzf)
Voir les logs
# Parcourir les commits avec prévisualisation
git log --oneline | fzf --preview 'git show {1}'
Ajouter des fichiers au staging
# Sélectionner les fichiers à ajouter (multi-sélection avec Tab)
git add $(git status -s | fzf -m | awk '{print $2}')
Alias Git + fzf
Ajoutez ces alias dans votre .bashrc ou .zshrc :
# Changer de branche
alias gbf='git checkout $(git branch | fzf)'
# Supprimer une branche
alias gbd='git branch -d $(git branch | fzf)'
# Voir un commit
alias glf='git log --oneline | fzf --preview "git show {1}"'
Intégration avec d'autres outils
Avec find
# Chercher uniquement les fichiers .js
find . -name "*.js" | fzf
# Exclure node_modules
find . -not -path "*/node_modules/*" -name "*.ts" | fzf
Avec ripgrep (rg)
# Rechercher dans le contenu des fichiers puis filtrer avec fzf
rg --line-number "" | fzf --delimiter=: --preview 'bat --color=always {1} --highlight-line {2}'
Avec docker
# Sélectionner un conteneur à arrêter
docker stop $(docker ps --format "{{.Names}}" | fzf)
# Voir les logs d'un conteneur
docker logs $(docker ps -a --format "{{.Names}}" | fzf)
# Supprimer une image
docker rmi $(docker images --format "{{.Repository}}:{{.Tag}}" | fzf)
Avec kill (tuer un processus)
# Sélectionner un processus à tuer
kill $(ps aux | fzf | awk '{print $2}')
Configuration permanente
Ajoutez ces variables d'environnement dans votre .bashrc ou .zshrc :
# Options par défaut de fzf
export FZF_DEFAULT_OPTS='
--height 40%
--reverse
--border
--preview "bat --color=always {} 2>/dev/null || cat {}"
'
# Utiliser fd au lieu de find (plus rapide, respecte .gitignore)
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
# Options pour Ctrl+T
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
export FZF_CTRL_T_OPTS='--preview "bat --color=always {}"'
# Options pour Alt+C
export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude .git'
export FZF_ALT_C_OPTS='--preview "ls -la {}"'
Thème et couleurs
# Thème sombre personnalisé
export FZF_DEFAULT_OPTS='
--color=bg+:#363a4f,bg:#24273a,spinner:#f4dbd6,hl:#ed8796
--color=fg:#cad3f5,header:#ed8796,info:#c6a0f6,pointer:#f4dbd6
--color=marker:#f4dbd6,fg+:#cad3f5,prompt:#c6a0f6,hl+:#ed8796
--border --reverse --height 40%
'
Fonctions utiles
Ajoutez ces fonctions à votre shell :
# Ouvrir un fichier dans l'éditeur
fe() {
local file
file=$(fzf --preview 'bat --color=always {}') && ${EDITOR:-vim} "$file"
}
# cd dans un sous-répertoire
fcd() {
local dir
dir=$(fd --type d | fzf --preview 'ls -la {}') && cd "$dir"
}
# Chercher dans le contenu puis ouvrir le fichier
fgrep() {
local result
result=$(rg --line-number "$1" | fzf --delimiter=: --preview 'bat --color=always {1} --highlight-line {2}')
local file=$(echo "$result" | cut -d: -f1)
local line=$(echo "$result" | cut -d: -f2)
[ -n "$file" ] && ${EDITOR:-vim} "+$line" "$file"
}
Outils complémentaires
Pour tirer le meilleur de fzf, installez ces outils :
| Outil | Rôle | Installation |
|---|---|---|
fd | Alternative rapide à find | apt install fd-find |
bat | cat avec coloration syntaxique | apt install bat |
ripgrep | grep ultra-rapide | apt install ripgrep |
tree | Afficher l'arborescence | apt install tree |
Conclusion
fzf transforme votre terminal en un outil de recherche puissant et interactif. Que ce soit pour naviguer dans vos fichiers, parcourir votre historique ou gérer vos conteneurs Docker, fzf accélère considérablement votre workflow. Combiné avec fd, bat et ripgrep, il devient un outil indispensable pour tout développeur travaillant en ligne de commande.
Articles similaires

Guide Complet : Comment Créer un Projet de Développement Structuré
Apprenez à créer un projet de développement bien structuré. Étapes, organisation, outils et bonnes pratiques pour démarrer sur de bonnes bases.
Similaires

Docker : conteneuriser vos applications simplement
Apprenez à utiliser Docker pour conteneuriser vos applications : installation, commandes essentielles, Dockerfile, Docker Compose et bonnes pratiques.
Similaires
Propres

GitHub : collaborer et gérer vos projets avec Git
Découvrez GitHub, la plateforme incontournable pour héberger vos dépôts Git, collaborer en équipe et gérer vos projets open source ou privés.
Similaires
Propres