source
cerca PATH
per impostazione predefinita.
Ma in bash, il completamento automatico non funziona quando si digita il nome di un comando dopo source
.
In generale, quando viene eseguito il completamento automatico basato su PATH
funziona e quando no?
Come posso farlo funzionare quando digito l'argomento in source
?
Grazie.
Risposta accettata:
source
(il bash
comando integrato) accetta un nomefile discussione; la ricerca PATH viene avviata solo se il nome file specificato non viene trovato. Quindi source foo
prova prima ad aprire ./foo
e solo quando fallisce va alla ricerca di /path/dir/foo
. Prova il completamento delle schede con i nomi di file che esistono nella tua directory corrente o fornisci i percorsi del comando che ti interessa. Questi dovrebbero essere completati con le schede come ti aspetteresti.
-
Il modo più semplice per ottenere ciò che desideri è riconoscere che il completamento delle schede sta tentando di nomefile completo ma vuoi comando completo . Puoi attivare il comando completo con il
M-!
combinazione di tasti alias Alt+! . (Vedi ilREADLINE
sezione,Completing
sottosezione, inman bash
e nella documentazione online di bash per altre funzioni di completamento e combinazioni di tasti predefinite.) -
Il modo più difficile sarebbe rivedere le funzioni di completamento predefinite attivate per
source
Il primo argomento per chiamare entrambi nomefile-completo e comando completo funzioni. Vedihelp complete
(sulla riga di comando), ilProgrammable Completion
sottosezione inman bash
e nella documentazione online di bash e ilcomplete
comando integrato.
In generale, il completamento delle schede è posizionale e chiama diverse funzioni di completamento in base a dove ti trovi nella riga di comando. Sui sistemi Arch, i pacchetti possono installare un file di completamento in /usr/share/bash-completion
per fornire completamenti sensibili al contesto per i loro eseguibili.