15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
31.10.2024

Comment installer et utiliser fzf sur Linux : Le guide complet de la recherche floue dans le terminal

Si vous passez beaucoup de temps dans le terminal Linux, vous savez déjà que trouver des fichiers, se souvenir des commandes et naviguer dans les répertoires peuvent vous ralentir. fzf (Fuzzy Finder) est un outil de ligne de commande interactif ultra-rapide qui élimine complètement cette friction. Que vous filtriez des milliers de fichiers, recherchiez dans l’historique des commandes ou changiez de branches Git, fzf transforme les tâches terminales fastidieuses en opérations fluides et quasi instantanées.

Dans ce guide complet, vous apprendrez comment installer fzf sur Linux, maîtriser ses fonctionnalités principales, l’intégrer avec des outils populaires et le personnaliser selon votre flux de travail exact.

> Vous gérez votre propre environnement Linux ? Une configuration de développement puissante commence par la bonne infrastructure. L’hébergement VPS d’AlexHost vous donne un accès root complet, un stockage SSD haute performance et une liberté totale pour configurer votre serveur — la base idéale pour construire un flux de travail productif en terminal Linux.

Qu’est-ce que fzf ?

fzf est un chercheur de ligne de commande à usage général écrit en Go. Il lit une liste d’éléments à partir de l’entrée standard et les présente dans une interface de filtrage interactive en temps réel. Au fur et à mesure que vous tapez, fzf affine les résultats en utilisant un algorithme de correspondance floue — ce qui signifie que vous n’avez pas besoin de taper des chaînes exactes pour trouver ce que vous cherchez.

Les capacités clés de fzf incluent :

  • Recherche de fichiers et répertoires dans de grands arbres de répertoires
  • Navigation dans l’historique des commandes avec rappel instantané
  • Navigation dans les branches et commits Git
  • Gestion des processus et suppression interactive
  • Sélection d’hôte SSH à partir de votre fichier de configuration
  • Intégration avec pratiquement n’importe quelle commande qui produit une sortie basée sur des lignes

fzf est léger, sans dépendances après l’installation, et fonctionne de manière transparente avec les shells Bash, Zsh et Fish.

Installation de fzf sur Linux

Il existe deux méthodes d’installation principales : cloner le référentiel Git officiel ou utiliser le gestionnaire de paquets de votre distribution. Les deux sont simples.

Méthode 1 : Installation via Git (recommandée pour la dernière version)

L’installation à partir du référentiel GitHub garantit que vous obtenez toujours la version la plus à jour.

Étape 1 — Cloner le référentiel :

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf

Étape 2 — Exécuter le script d’installation :

cd ~/.fzf
./install

Pendant l’installation, vous serez invité à répondre à trois questions de configuration :

  • Activer les liaisons de touches ? (Recommandé : Oui) — Ajoute les raccourcis Ctrl+T, Ctrl+R et Alt+C
  • Activer l’auto-complétion floue ? (Recommandé : Oui) — Active l’intégration de la complétion par tabulation
  • Mettre à jour les fichiers de configuration du shell ? (Recommandé : Oui) — Source automatiquement fzf dans .bashrc / .zshrc

Après l’installation, rechargez votre shell :

source ~/.bashrc   # For Bash users
source ~/.zshrc    # For Zsh users

Méthode 2 : Installation via le gestionnaire de paquets

L’installation via le gestionnaire de paquets est plus rapide et s’intègre au mécanisme de mise à jour de votre système, bien qu’elle puisse fournir une version légèrement plus ancienne.

Ubuntu / Debian :

sudo apt update && sudo apt install fzf

Fedora :

sudo dnf install fzf

Arch Linux / Manjaro :

sudo pacman -S fzf

macOS (Homebrew) :

brew install fzf
$(brew --prefix)/opt/fzf/install

Vérifiez votre installation :

fzf --version

Utilisation basique de fzf

Une fois installé, fzf est immédiatement utilisable. Voici les commandes essentielles pour construire votre fondation.

1. Recherche interactive de fichiers

Lancez fzf dans votre répertoire courant pour rechercher interactivement des fichiers :

fzf

Une invite interactive apparaît. Commencez à taper n’importe quelle partie d’un nom de fichier — fzf filtre les résultats en temps réel. Utilisez les touches fléchées pour naviguer et appuyez sur Enter pour sélectionner.

Raccourcis de navigation utiles :

ToucheAction
/ Naviguer dans les résultats
EnterConfirmer la sélection
TabMarquer plusieurs éléments
Ctrl+C / EscAnnuler

2. Rechercher l’historique des commandes

L’un des cas d’utilisation les plus populaires de fzf est la recherche interactive dans l’historique des commandes :

history | fzf

Si vous avez activé les liaisons de touches lors de l’installation, vous pouvez appuyer sur Ctrl+R à tout moment dans votre terminal pour déclencher cela instantanément — bien plus puissant que la recherche inversée par défaut.

3. Combiner fzf avec find

Recherchez récursivement dans votre système de fichiers et canalisez les résultats dans fzf :

find . -type f | fzf

Pour rechercher uniquement des répertoires :

find . -type d | fzf

4. Naviguer vers un répertoire avec Alt+C

Si vous avez activé les liaisons de touches, appuyer sur Alt+C ouvre un navigateur de répertoires interactif. Sélectionnez un répertoire et fzf exécute automatiquement cd pour y naviguer.

5. Rechercher les branches Git

Trouvez rapidement et référencez les branches Git dans les grands référentiels :

git branch | fzf

Pour extraire une branche interactivement :

git checkout $(git branch | fzf)

Intégration de fzf avec d’autres commandes

La véritable puissance de fzf émerge lorsque vous le combinez avec d’autres outils en utilisant la substitution de commande ($(fzf)).

1. Ouvrir un fichier directement dans vim ou nano

vim $(fzf)
nano $(fzf)

Tapez une partie d’un nom de fichier, sélectionnez-le et l’éditeur s’ouvre immédiatement — pas besoin de taper le chemin complet.

2. Copier un chemin de fichier dans le presse-papiers

fzf | xclip -selection clipboard

Sur les systèmes utilisant xsel :

fzf | xsel --clipboard --input

3. Sélection interactive d’hôte SSH

Si vous gérez plusieurs serveurs, cette intégration change la donne :

ssh $(grep -i "^Host " ~/.ssh/config | awk '{print $2}' | fzf)

Cela analyse votre fichier de configuration SSH et vous permet de sélectionner interactivement un hôte avant de vous connecter — plus besoin de mémoriser les noms d’hôtes ou les adresses IP.

> Vous gérez plusieurs serveurs distants ? Les serveurs dédiés d’AlexHost fournissent du matériel de qualité entreprise avec un contrôle administratif complet, ce qui les rend parfaits pour les équipes qui dépendent des flux de travail basés sur SSH.

4. Arrêter un processus interactivement

kill -9 $(ps aux | fzf | awk '{print $2}')

Listez tous les processus en cours d’exécution, recherchez celui que vous voulez et arrêtez-le — tout sans avoir besoin de connaître le PID à l’avance.

5. Aperçu du contenu des fichiers lors de la recherche

fzf supporte un drapeau --preview qui affiche le contenu des fichiers à côté de vos résultats de recherche :

fzf --preview 'cat {}'

Pour les aperçus avec coloration syntaxique (nécessite bat) :

fzf --preview 'bat --color=always {}'

Personnalisation de fzf

fzf est très configurable via des variables d’environnement et des fichiers de configuration du shell.

1. Définir les options par défaut avec FZF_DEFAULT_OPTS

Ajoutez ceci à votre ~/.bashrc ou ~/.zshrc pour appliquer les options globalement :

export FZF_DEFAULT_OPTS="--height 40% --reverse --inline-info --border"

Options courantes expliquées :

OptionDescription
--height 40%Afficher fzf dans les 40 % inférieurs du terminal
--reverseAfficher les résultats de haut en bas (entrée en haut)
--inline-infoAfficher le nombre de correspondances en ligne
--borderDessiner une bordure autour de la fenêtre fzf
--multiActiver la multi-sélection avec Tab

2. Personnaliser les couleurs

Faites correspondre le schéma de couleurs de fzf à votre thème de terminal :

export FZF_DEFAULT_OPTS="--color=bg+:#3c3836,bg:#282828,fg:#ebdbb2,fg+:#ebdbb2,hl:#fabd2f,hl+:#fabd2f,info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,border:#665c54"

Cet exemple utilise le schéma de couleurs populaire Gruvbox. Ajustez les valeurs hexadécimales pour correspondre à votre thème préféré.

3. Liaisons de touches personnalisées

Ajoutez des liaisons personnalisées à votre fichier de configuration du shell :

# Ctrl+T — fuzzy file finder
export FZF_CTRL_T_COMMAND="find . -type f 2>/dev/null"

# Alt+C — fuzzy directory navigator
export FZF_ALT_C_COMMAND="find . -type d 2>/dev/null"

# Ctrl+R — command history search with preview
export FZF_CTRL_R_OPTS="--preview 'echo {}' --preview-window down:3:hidden:wrap --bind '?:toggle-preview'"

4. Définir une source de fichier par défaut avec FZF_DEFAULT_COMMAND

Par défaut, fzf utilise find pour lister les fichiers. Vous pouvez remplacer cela par des outils plus rapides comme fd ou ripgrep :

# Using fd (faster alternative to find)
export FZF_DEFAULT_COMMAND="fd --type f --hidden --follow --exclude .git"

# Using ripgrep
export FZF_DEFAULT_COMMAND="rg --files --hidden --follow --glob '!.git'"

5. Fichier de configuration persistant

Pour les utilisateurs de Zsh, vous pouvez stocker les paramètres fzf persistants dans un fichier dédié :

echo "export FZF_DEFAULT_OPTS='--height 40% --reverse --inline-info --border'" >> ~/.fzf.zsh

Assurez-vous que ce fichier est sourcé dans votre ~/.zshrc :

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

Exemples de flux de travail pratique avec fzf

Voici des fonctions prêtes à l’emploi que vous pouvez ajouter à votre .bashrc ou .zshrc :

cd interactif avec fzf

fcd() {
  local dir
  dir=$(find ${1:-.} -type d 2>/dev/null | fzf +m) && cd "$dir"
}

Ouvrir les fichiers récents dans vim

fvim() {
  local file
  file=$(find . -type f -name "*.${1:-*}" | fzf --preview 'cat {}')
  [ -n "$file" ] && vim "$file"
}

Rechercher et appliquer Git Stash

fstash() {
  local stash
  stash=$(git stash list | fzf | cut -d: -f1)
  [ -n "$stash" ] && git stash apply "$stash"
}

Dépannage des problèmes courants avec fzf

ProblèmeSolution
fzf: command not foundAssurez-vous que ~/.fzf/bin est dans votre $PATH ; réexécutez ~/.fzf/install
Les liaisons de touches ne fonctionnent pasRéex
15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer