Yanıtlar:
Takma adı, geçmişi ve sözcük genişlemelerini yapacak okuma satırı işlevini gerçekleştirmek için Ctrl- Alt- tuşuna basabilirsiniz . Bazı klavyelerde olmadığını unutmayın . O zaman basmanız gerekebilir -eshell-expand-lineMetaAltEscCtrle
Fonksiyonlar alias-expand-lineve history-and-alias-expand-linevarsayılan olarak bağlı olmayan, ancak aşağıdaki benzer satırları ekleyerek bunları bağlayabilir ~/.inputrcdosyası.
"\e\C-l": alias-expand-line
bulunması şeklinde Ctrl- Alt- l(küçük harfle "ell") gerçekleştirmek sadece takma ad.
"\C-i": "\e\C-l\e\e"Her iki gerçekleştiren bir makro oluşturur alias-expand-lineve complete. Bu benim cevabımdaki bağlamaya ve Esc-Esc için varsayılan bağlamanın yerinde kalmasına bağlı. Varsayılan tamamlama işlemini yapmak isteseydiniz yine de Esc-Esc'i yapabileceksiniz.
ESC C-eBash C-x aiçin çalışıyor ama Zsh için çalışıyor. Ayrıca OS X üzerinde de test edilmiştir.
Control-x: history-and-alias-expand-line.
Bu aslında, yapmaya çalıştığınız şeyi yapmanın çok daha basit bir yolu olabilir ( bashsürüm> = 4.2.29):
shopt -s direxpand
shopt -s expand_aliases
shopt'nın mansayfası: https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
alias ll='ls -l, kabuk 'll' komutunu, 'll' komutunu / işlevini, muhtemelen bulunmadığını yorumlayacaktır.
Bu çalışmıyor. Ama böyle bir şeyin yapmak istediğinizi yapmak için yapılabileceğini umuyorum / umuyorum. Kendi tamamlama komut dosyanızı kullanmanız gerekir. İşte böyle yaparsın:
_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
Şimdi tam bash_completion dosyasını ( http://caliban.org/bash ) kaynaklayın ve yukarıda belirtilen betiği, url'den aldığınız betiğin bash_completion.d dizini içindeki bir dosyaya koyun. İşe yaramazsa bana haber ver.
Teşekkürler.
Zsh'nin basit bir çözüm arayan kurulu olduğu kişiler için, globalialar arkadaşınız olabilir
Tüm genel ifadeleri, alt komutları ve diğer adları (global dahil) genişletir.
# .zsrc:
alias S="sudo systemctl"
$ S<space>
# expands to:
$ sudo systemctl
yüklemek için sadece "globalias" eklemek .zshrc eklenti listesine
plugins=(... globalias)
Sonra sadece
SPACEyazdığınız bir komutun genişlemesini tetiklemek için basın .Yalnızca komut satırını genişletmeden boşluk eklemek istiyorsanız,
CTRL+SPACE