जवाबों:
आप भी दबा सकते हैं Ctrl- Alt- eReadLine समारोह में प्रदर्शन करने के लिए shell-expand-lineजो अन्य नाम, इतिहास और शब्द विस्तार करेंगे। ध्यान दें कि कुछ कीबोर्ड Metaपर नहीं है Alt। आपको Escफिर प्रेस करने की आवश्यकता हो सकती है Ctrl-e
कार्यों alias-expand-lineऔर history-and-alias-expand-lineडिफ़ॉल्ट रूप से बाध्य नहीं कर रहे हैं, लेकिन आप अपने लिए निम्न के समान लाइनों जोड़कर उन्हें बाध्य कर सकते हैं ~/.inputrcफ़ाइल।
"\e\C-l": alias-expand-line
जो होगा Ctrl- Alt- l(छोटे अक्षर "ell") प्रदर्शन केवल उर्फ विस्तार।
"\C-i": "\e\C-l\e\e"जो एक मैक्रो बनाता है जो दोनों का प्रदर्शन करता है alias-expand-lineऔर complete। यह ऊपर दिए गए मेरे उत्तर से बाध्यकारी पर निर्भर करता है और यह है कि Esc-Esc के लिए डिफ़ॉल्ट बाइंडिंग बनी हुई है। यदि आप डिफ़ॉल्ट रूप से पूर्ण करना चाहते हैं, तो भी आप Esc-Esc कर पाएंगे।
ESC C-eबैश के लिए काम करता है, लेकिन C-x aZsh के लिए काम करता है। इसके अलावा ओएस एक्स पर परीक्षण किया गया
Control-x: history-and-alias-expand-line:।
यह वास्तव में एक बहुत सरल तरीका हो सकता है कि आप क्या करने की कोशिश कर रहे हैं ( bashसंस्करण> = 4.2.29):
shopt -s direxpand
shopt -s expand_aliases
shoptका manपृष्ठ: https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
alias ll='ls -lने 'll' को कमांड / फंक्शन 'll' के रूप में व्याख्यायित किया है, जिसकी संभावना नहीं है।
यह काम नहीं करता। लेकिन मैं अनुमान लगा रहा / लगा रहा हूँ कि आप जो करना चाहते हैं, वह इस तरह से हो सकता है। आपको अपनी पूरी स्क्रिप्ट का उपयोग करना होगा। यह आप कैसे बनाते हैं:
_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
अब पूर्ण bash_completion फ़ाइल ( http://caliban.org/bash ) को स्रोत करें और उपरोक्त स्क्रिप्ट को bash_completion.d निर्देशिका के अंदर एक फ़ाइल में रखें, जो स्क्रिप्ट आपको url संदर्भों से मिलती है। मुझे पता है अगर यह काम नहीं करता है।
धन्यवाद।
एक सरल समाधान की तलाश में स्थापित किए गए लोगों के लिए, वैश्विक लोग आपके मित्र हो सकते हैं
सभी ग्लोब एक्सप्रेशन्स, सबकमांड और एलियास (वैश्विक सहित) का विस्तार करता है।
# .zsrc:
alias S="sudo systemctl"
$ S<space>
# expands to:
$ sudo systemctl
स्थापित करने के लिए बस आप "
plugins=(... globalias)
फिर
SPACEआपके द्वारा लिखी गई कमांड के विस्तार को ट्रिगर करने के लिए बस दबाएं ।यदि आप केवल कमांड लाइन का विस्तार किए बिना एक स्थान सम्मिलित करना चाहते हैं, तो दबाएं
CTRL+SPACE