← retour aux snippets

fzf + Ctrl+R: meilleure recherche dans l'historique

Lier Ctrl+R à une recherche d'historique via fzf et insérer la commande sélectionnée.

bash productivity #fzf#history#readline

objectif

Remplacer la recherche incrémentale basique par une recherche fuzzy puissante.

code minimal

# assurez-vous que fzf est installé
command -v fzf >/dev/null || echo "installez fzf d'abord"

# widget Bash: Ctrl+R ouvre fzf sur l'historique
__fzf_history__() {
  local selected
  selected=$(HISTTIMEFORMAT= history | sed 's/^ *[0-9]\+ *//' | fzf --tac --no-sort --query "$READLINE_LINE")
  if [[ -n "$selected" ]]; then
    READLINE_LINE="$selected"
    READLINE_POINT=${#READLINE_LINE}
  fi
}
bind -x '"\C-r": __fzf_history__'

utilisation

# tapez Ctrl+R et cherchez n'importe quel fragment de commande

variante(s) utile(s)

# key-bindings fournis par le paquet fzf (si disponible)
# source /usr/share/doc/fzf/examples/key-bindings.bash 2>/dev/null || # source /usr/share/fzf/key-bindings.bash 2>/dev/null || true

notes

  • bind -x nécessite Bash; pour zsh, utilisez le widget dédié fzf.
  • --tac montre les plus récentes en haut; ajustez selon préférence.