Respuestas:
Puede pulsar Ctrl- Alt- epara realizar la función readline shell-expand-line
que hará alias, la historia y la palabra expansiones. Tenga en cuenta que en algunos teclados Metano lo es Alt. Es posible que deba presionar Escentonces Ctrl:e
Las funciones alias-expand-line
y history-and-alias-expand-line
no están vinculadas de forma predeterminada, pero puede vincularlas agregando líneas similares a las siguientes a su ~/.inputrc
archivo.
"\e\C-l": alias-expand-line
lo que haría que Ctrl- Alt- l(minúscula "ell") realizara solo la expansión de alias.
"\C-i": "\e\C-l\e\e"
lo que crea una macro que realiza tanto alias-expand-line
y complete
. Depende del enlace de mi respuesta anterior y de que el enlace predeterminado para Esc-Esc permanezca en su lugar. Aún podría hacer Esc-Esc si quisiera completar por defecto.
ESC C-e
funciona para Bash, pero C-x a
funciona para Zsh. También probado en OS X.
Control-x: history-and-alias-expand-line
.
En realidad, esta podría ser una forma mucho más simple de hacer lo que está intentando ( bash
versión> = 4.2.29):
shopt -s direxpand
shopt -s expand_aliases
shopt
's man
página: https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
alias ll='ls -l
el shell interpretaría 'll' como comando / función 'll' que probablemente no existe.
Esto no funciona. Pero supongo / espero que se pueda hacer algo como esto para hacer lo que quieres hacer. Tendría que usar su propio script de finalización. Así es como haces 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
Ahora obtenga el archivo bash_completion completo ( http://caliban.org/bash ) y coloque el script mencionado anteriormente en un archivo dentro del directorio bash_completion.d que el script que obtiene de las referencias de URL. Avísame si no funciona.
Gracias.
Para las personas que tienen instalado zsh y buscan una solución simple, globalias podría ser tu amigo
Expande todas las expresiones globales, subcomandos y alias (incluido global).
# .zsrc:
alias S="sudo systemctl"
$ S<space>
# expands to:
$ sudo systemctl
para instalar simplemente agregue "globalias" a su lista de complementos .zshrc
plugins=(... globalias)
Luego solo presione
SPACE
para activar la expansión de un comando que ha escrito.Si solo desea insertar un espacio sin expandir la línea de comando, presione
CTRL+SPACE