====== fzf-tab-completion ======
**Tab completion using fzf**
fzf-tab-completion erweitert die Tab Auto-Complete Funktion der Shell, indem die Ergebnisse, die durch die Tastenkombination ''Tab+Tab'' hervorgerufen werden, durch den [[.:fzf]] Filter durch geleitet wird. Dies ermöglicht z.B. bei einer großen Menge an Programm-Optionen diese schnell zu durchsuchen und auszufiltern.
Zudem bietet fzf-tab-completion Unterstützung für Shell Aliase, sodass auch die Tab-Completion für Aliase funktioniert. Dies wird dadurch erreicht, dass ein Alias auf den Hauptbefehl aufgelöst wird, und von diesem die Auto-Complete Optionen abgerufen werden. Somit wurde der Alias ''config='git''' auf die Auto-Complete Optionen von dem Befehl ''git'' abrufen wenn ''config Tab+Tab'' gedrückt wird.
===== Installation =====
==== Arch Linux ====
[[aw>Install|Installiere]] das [[aur>fzf-tab-completion-git]]**AUR** Paket.
=== Bash ===
Aktivieren und Binden von fzf-tab-completion in der Bash Shell an die Tab Taste:
source /path/to/fzf-tab-completion/bash/fzf-bash-completion.sh
bind -x '"\t": fzf_bash_completion'
===== Konfiguration =====
Siehe Github [[https://github.com/lincheney/fzf-tab-completion|Projektseite]] für alle Konfigurationsmöglichkeiten.
Es gibt 2 Umbegnungsvariablen die das normale ''Tab+Tab'' Auto-Complete verhalten steuern können. Um z.B. das gewohnte verhalten nachzuahmen. Bis es zur nächsten Uneindeutigkeit:
export FZF_COMPLETION_AUTO_COMMON_PREFIX=true
export FZF_COMPLETION_AUTO_COMMON_PREFIX_PART=true
===== Nüztliche Funktionen =====
Aktiviert fzf-tab-completion in der Bash shell auser in ''vscode'' und immitiert das normale ''Tab+Tab'' verhalten der Bash bis zur nächsten uneindeutigkeit. Danach setzt der fzf Filter ein um das Ergebnis zu filtern.
fzf_tab_complition_config() {
local _fzf_bash_completion="/usr/share/fzf-tab-completion/bash/fzf-bash-completion.sh"
if [[ -f "${_fzf_bash_completion}" && "${TERM_PROGRAM}" != "vscode" ]]; then
source "${_fzf_bash_completion}"
bind -x '"\t": fzf_bash_completion'
export FZF_COMPLETION_AUTO_COMMON_PREFIX=true
export FZF_COMPLETION_AUTO_COMMON_PREFIX_PART=true
fi
}
fzf_tab_complition_config
===== Siehe auch =====
* [[https://github.com/lincheney/fzf-tab-completion|Github Projektseite]]
* [[https://www.suletuxe.de/forum/index.php?board=18;action=display;threadid=1019|Suletuxe Forum - Diskussionsthread]]