Zsh-lignende autocompletion i Bash: Sådan cykler du gennem muligheder med Tab-tasten

Hvordan kan zsh-lignende autocompletion opnås i bash, så tab-tasten cykler gennem mulighederne i stedet for blot at vise en liste? Hvad skal indsættes i .bashrc for at opnå dette?

For at opnå zsh-lignende autocompletion i bash, hvor tab-tasten cykler gennem mulighederne, skal du tilføje specifikke konfigurationslinjer til din .bashrc fil og genindlæse den ved at køre `source ~/.bashrc`.

Hvordan kan zsh-lignende autocompletion opnås i bash, så tab-tasten cykler gennem mulighederne i stedet for blot at vise en liste? Hvad skal indsættes i .bashrc for at opnå dette?

For at opnå zsh-lignende autocompletion i bash, hvor tab-tasten cykler gennem mulighederne i stedet for blot at vise en liste, kan du tilføje følgende konfiguration til din .bashrc fil:

# Enable programmable completion features
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

# Configure tab completion to cycle through options
bind 'TAB:menu-complete'
bind 'set show-all-if-ambiguous on'
bind 'set menu-complete-display-prefix on'

Her er en kort forklaring af de tilføjede linjer:

  • if ! shopt -oq posix; then: Dette sikrer, at bash ikke kører i POSIX-tilstand, hvilket kan deaktivere nogle af de avancerede funktioner.
  • . /usr/share/bash-completion/bash_completion eller . /etc/bash_completion: Dette indlæser bash-completion scriptet, som er nødvendigt for avanceret autocompletion.
  • bind 'TAB:menu-complete': Dette binder tab-tasten til menu-complete funktionen, som cykler gennem mulighederne.
  • bind 'set show-all-if-ambiguous on': Dette viser alle muligheder, hvis der er tvetydighed, når du trykker på tab-tasten.
  • bind 'set menu-complete-display-prefix on': Dette viser det fælles præfiks, når du cykler gennem mulighederne.

Efter at have tilføjet disse linjer til din .bashrc fil, skal du genindlæse filen for at ændringerne træder i kraft. Dette kan gøres ved at køre:

source ~/.bashrc

Nu skulle din bash shell have zsh-lignende autocompletion, hvor tab-tasten cykler gennem mulighederne.