Existe uma maneira de expandir aliases embutidos no bash?
$bash>alias ll='ls -l '
$bash>ll<tab>
$bash>ls -l
Você pode pressionar Ctrl- Alt- epara executar a função readline, shell-expand-line
que fará o alias, histórico e expansões de palavras. Observe que em alguns teclados Metanão é Alt. Talvez seja necessário pressionar Escem seguida Ctrl-e
As funções alias-expand-line
e history-and-alias-expand-line
não são vinculadas por padrão, mas você pode vinculá-las adicionando linhas semelhantes à seguinte ao seu ~/.inputrc
arquivo.
"\e\C-l": alias-expand-line
o que faria Ctrl- Alt- l(minúsculas "ell") executar apenas a expansão de alias.
"\C-i": "\e\C-l\e\e"
o que cria uma macro que executa tantoalias-expand-line
ecomplete
. Depende da ligação da minha resposta acima e que a ligação padrão para o Esc-Esc permaneça em vigor. Você ainda poderá executar o Esc-Esc se quiser fazer a conclusão padrão.ESC C-e
funciona para o Bash, masC-x a
funciona para o Zsh. Também testado no OS X.Control-x: history-and-alias-expand-line
.Na verdade, isso pode ser uma maneira muito mais simples de fazer o que você está tentando (
bash
versão> = 4.2.29):shopt
'sman
página: https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.htmlfonte
alias ll='ls -l
o shell interpretaria 'll' como comando / função 'll' que provavelmente não existe.Isso não funciona. Mas estou supondo / esperando que algo assim possa ser feito para fazer o que você quer fazer. Você precisaria usar seu próprio script de conclusão. É assim que você cria um:
Agora, crie o arquivo bash_completion completo ( http://caliban.org/bash ) e coloque o script mencionado acima em um arquivo dentro do diretório bash_completion.d ao qual o script que você obtém das referências de URL. Deixe-me saber se não funcionar.
Obrigado.
fonte
Para quem tem o zsh instalado procurando uma solução simples, globalias pode ser seu amigo
para instalar basta adicionar "globalias" à sua lista de plugins .zshrc
fonte