सवाल Zsh में बाहरी कमांड पूर्ण होने से पहले मैं शैल फ़ंक्शन पूर्णता और उपनाम पूर्णता पर कैसे पुन: प्रयास कर सकता हूं?


जैसा कि मैंने मारा जब यह खड़ा है टैब आंशिक कमांड के लिए संभावित समापन पर पुन: प्रयास करने के लिए बाहरी कमांड पूर्णता पहले पुनरावृत्त की जाती है:

user@user-X550CL ~ % apt
Completing external command
apt                       aptd                      apt-key                 
apt-add-repository        aptdcon                   apt-mark                
apt-cache                 apt-extracttemplates      apt-sortpkgs            
apt-cdrom                 apt-ftparchive            apturl                  
apt-config                apt-get                   apturl-gtk              
Completing shell function
apt-get_all
Completing alias
apt-get_autoremove_clean  apt-get_update            apt-get_update_upgrade 

उपर्युक्त उदाहरण में इसमें 17 और हिट लगे टैब को पाने के लिए apt-get_autoremove_clean (या एक अतिरिक्त टाइप करने के लिए -get_ और हिट करने के लिए टैब 3 और बार)।

ज्यादातर मामलों में यदि शैल फ़ंक्शन और उपनाम पहले पुनरावृत्त किए जाएंगे तो मुझे यह अधिक सुविधाजनक लगेगा।

सेटअप करने का कोई तरीका है zsh खोल कार्यों और उपनामों पर पहले फिर से शुरू करने के लिए?


1
2017-09-14 19:25


मूल


संदर्भ: zsh.sourceforge.net/Doc/Release/... - Rinzwind
क्या कोई कारण है जिसे आप नहीं चला सकते हैं bash? bash यह स्वाभाविक रूप से करता है। - Daniel
@ डैनियल यह करता है? यह मेरे लिए खबर है। मेरे लिए, बैश पूर्ण होने में कार्यों, आदेशों या उपनामों के बीच भी अंतर नहीं करता है। sudo<tab> मुझसे हो जाता है sudo sudoa sudoedit sudof sudoreplay एक पंक्ति में - muru
ओह, मैं समझता हूं कि तुम्हारा क्या मतलब है। नीचे जवाब देखें - Daniel
@Rinzwind हां, आरटीएफएम, तुम सही हो। हालांकि वह दस्तावेज है व्यापक, और मैं बहुत कम जानता हूँ zsh; गुगलिंग जिसने भी लाभ नहीं उठाया। मैंने सोचा कि किसी को टोपी में सही हो सकता है। - kos


जवाब:


दस्तावेज़ों को देखते हुए, यह चाल हो सकता है:

$ zstyle ':completion:*:*:-command-:*' group-order aliases functions commands
$ sudo<tab>
sudoa
sudof
sudo        sudoedit    sudoreplay

(यदि यह स्पष्ट नहीं है, sudoa एक उपनाम है और sudof एक समारोह है।)


2
2017-09-14 19:45



निर्दोष, धन्यवाद। हालांकि मेरे संस्थापन उपनाम / खोल कार्यों / बाहरी आदेशों में मेरे प्रश्न में उदाहरण के रूप में अच्छी तरह से अलग किया गया है, हो सकता है कि यह आपके कॉन्फ़िगरेशन पर निर्भर करता हो? - kos
@ kos मुझे लगता है। मुझे नहीं पता कि आपने यह कैसे किया। जब तक मैंने देखा तब तक मुझे समूह के बारे में भी पता नहीं था group-name डॉक्टर में - muru
एफडब्ल्यूआईडब्ल्यू अगर आप इसे डीबग करना चाहते हैं तो यह हमेशा ऐसा करता है क्योंकि मैंने इसे इस्तेमाल करना शुरू किया (डिफ़ॉल्ट रूप से, मैंने स्वतः कॉन्फ़िगर करना चुना ~/.zshrc पहले भाग में)। zsh 5.0.7 (x86_64-pc-linux-gnu) - kos
@ कोस नाह मेरे पास अपेक्षाकृत कुछ उपनाम और कार्य हैं। प्रयास के लायक नहीं है। - muru


एक और उत्तर देने वाले ने आदेश देने के लिए आदेश दिया, लेकिन आपको यह नहीं बताया कि इसे डिफ़ॉल्ट कैसे बनाया जाए।

इस आदेश को चलाएं:

echo "zstyle ':completion:*:*:-command-:*' group-order aliases functions commands" >> ~/.zshrc

1
2017-09-14 19:49