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-line
MetaAltEscCtrle
Fonksiyonlar alias-expand-line
ve history-and-alias-expand-line
varsayılan olarak bağlı olmayan, ancak aşağıdaki benzer satırları ekleyerek bunları bağlayabilir ~/.inputrc
dosyası.
"\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-line
ve 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-e
Bash C-x a
iç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 ( bash
sürüm> = 4.2.29):
shopt -s direxpand
shopt -s expand_aliases
shopt
'nın man
sayfası: 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
SPACE
yazdığı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