Risposte:
È possibile premere Ctrl- Alt- eper eseguire la funzione readline shell-expand-lineche eseguirà alias, cronologia ed espansioni di parole. Si noti che su alcune tastiere Metanon lo è Alt. Potrebbe essere necessario premere Escquindi Ctrl-e
Le funzioni alias-expand-linee history-and-alias-expand-linenon sono associate per impostazione predefinita, ma puoi associarle aggiungendo al file linee simili alle seguenti ~/.inputrc.
"\e\C-l": alias-expand-line
che farebbe Ctrl- Alt- l("ell" minuscola) eseguire solo l' espansione dell'alias.
"\C-i": "\e\C-l\e\e"che crea una macro che esegue sia alias-expand-linee complete. Dipende dall'associazione della mia risposta precedente e che l'associazione predefinita per Esc-Esc rimane in vigore. Saresti comunque in grado di eseguire Esc-Esc se desideri eseguire il completamento predefinito.
ESC C-elavora per Bash, ma C-x afunziona per Zsh. Testato anche su OS X.
Control-x: history-and-alias-expand-line.
Questo in realtà potrebbe essere un modo molto più semplice di fare ciò che stai cercando ( bashversione> = 4.2.29):
shopt -s direxpand
shopt -s expand_aliases
shopt's manpagina: https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
alias ll='ls -lla shell interpreterebbe 'll' come comando / funzione 'll' che probabilmente non esiste.
Questo non funziona. Ma sto indovinando / sperando che qualcosa del genere possa essere fatto per fare quello che vuoi fare. Dovresti usare il tuo script di completamento. Ecco come ne crei uno:
_ll()
{
COMPREPLY=(ls -l)
#The next line does not work. I just hope there were a way to replace that word
COMP_WORDS[COMP_CWORD-1]="ls -l"
}
complete -F _ll ll
Ora cerca il file completo bash_completion ( http://caliban.org/bash ) e metti lo script sopra menzionato in un file nella directory bash_completion.d che lo script che ottieni dai riferimenti url. Fammi sapere se non funziona.
Grazie.
Per le persone che hanno installato zsh alla ricerca di una soluzione semplice, globalias potrebbe essere tuo amico
Espande tutte le espressioni globali, i sottocomandi e gli alias (incluso globale).
# .zsrc:
alias S="sudo systemctl"
$ S<space>
# expands to:
$ sudo systemctl
per installare basta aggiungere "globalias" al tuo elenco di plugin .zshrc
plugins=(... globalias)
Quindi premi
SPACEper attivare l'espansione di un comando che hai scritto.Se si desidera solo inserire uno spazio senza espandere la riga di comando, premere
CTRL+SPACE