In che modo il completamento automatico della TAB trova le opzioni da completare?


Risposte:


22

A seconda del comando:

  • Qualcuno potrebbe aver scritto una funzione per generare possibili completamenti di argomenti, comprese le opzioni. Troverai le funzioni per alcuni comandi in /etc/bash_completion.d/*(o una posizione diversa su alcuni sistemi). Queste funzioni sono registrate con il built-in (es. Dice a bash di chiamare la funzione quando si preme un comando). Usano il built-in per dire a bash "ecco i possibili completamenti".complete complete -F _find find_findTabfindcompgen
  • Per alcuni comandi, bash chiamerà il comando con l'argomento --helpe analizzerà l'output. Tali comandi possono essere registrati completenell'integrato, ad es complete -F _longopt ls. _longoptè in effetti una funzione di generazione del completamento, che capita di analizzare l'output di un comando anziché utilizzare un elenco fisso. (Esistono altre funzioni di completamento più specializzate che analizzano l'output di un comando per generare possibili completamenti; cercare /etc/bash_completion.d/*esempi.)
  • Per cose come gli alias, la funzione di completamento li cerca nelle tabelle interne di bash. Il completebuilt-in ha opzioni per questo, ad esempio -Aper gli alias.

10

Dai un'occhiata al file

/ Etc / bash_completion

e osserva i file dalla directory:

/etc/bash_completion.d

Troverai la risposta.


2

Il supporto per il completamento bash è fornito in Debian e Ubuntu dal pacchetto di completamento bash . Di solito è anche necessario decommentare quanto segue in /etc/bash.bashrce / o .bashrcgenerare i file di completamento bash. Quanto segue proviene da /etc/bash.bashrc:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

perché questo funzioni. Di solito la vedo in entrambi. La gestione delle shell interattive / di login in Debian è un po 'un casino.

Commenti simili presumibilmente si applicano ad altre distribuzioni, sebbene forse abilitino l'approvvigionamento di default.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.