गतिशील रूप से पूरा होने की सूची को zsh में अपडेट करें


13

मुझे Tabकाफी उपयोगी पूरा करने के लिए zsh की परिणाम सूचियाँ मिल गई हैं , हालाँकि मैं उनके व्यवहार को थोड़ा मोड़ देना चाहता हूँ:

जब मैं Tabपहली बार और बाद में गतिशील रूप से हर नए अक्षर के साथ अद्यतन करता हूं , तो उन्हें दिखाई देना चाहिए । डिफ़ॉल्ट व्यवहार यह है कि सुझावों का केवल फिर से मूल्यांकन किया जाता है जब आप Tabफिर से, मैं इस दोहराया कीप को सहेजना चाहता हूं। ( अपडेट: लेकिन केवल संभावित पूर्णताओं को सूचीबद्ध करें, यह मेरी वास्तविक प्रॉम्प्ट लाइन को स्वचालित रूप से संशोधित नहीं करना चाहिए, भले ही केवल एक ही विकल्प बचा हो।)

क्या इस तरह के व्यवहार को प्राप्त करने का कोई तरीका है?


आप अनुरूपण zshके व्यवहार में काफी गहरे उतर सकते हैं । वास्तव में क्या होना चाहिए? इस समय यह प्रश्न पढ़ता है कि आप चाहते हैं कि प्रारंभिक TAB के बाद हर कुंजी प्रेस के लिए विकल्प सूचीबद्ध किए जाएं , लेकिन यह वास्तव में कुछ भी पूरा नहीं करेगा। क्या प्रत्येक कुंजी प्रेस को व्यवहार करना चाहिए जैसे कि यह एक TAB द्वारा पीछा किया गया था? इस बात को ध्यान में रखें कि इसका मतलब अनपेक्षित पूर्णताओं के लिए काफी पीछे होना होगा।
पेठ

@ user112553 पहला विकल्प: इस अर्थ में, यह वास्तव में दोहराया TAB की तरह व्यवहार नहीं करना चाहिए। मैं सिर्फ सुझाव सूची को गतिशील रूप से समायोजित करना चाहता हूं।
F30

जवाबों:


2

एक तरीका जो आप चाहते हैं समाधान प्रदान कर सकता है, है incremental-complete-word:

zle -N incremental-complete-word
bindkey '^Xi' incremental-complete-word

यह फन को लोड करता है और इसे बांधता है Ctrl- X i। अब आप इसे आजमा सकते हैं:

> k^Xi
incremental (complete): -no prefix-

इस उदाहरण में पत्र kटाइप किया गया था, उसके बाद कंट्रोल-एक्स i।

> kil
incremental (complete): kill       

मैंने टाइप किया ilऔर अब एक संभव समापन ( kill) था। कोई भी इसे स्वीकार कर सकता है और एंटर दबा सकता है।

> kill^D
incremental (complete): -no prefix-
- external command -
kill      killall   killall5

टाइप करके Ctrl- Dzsh संभावित पूर्णता दिखाता है।

से zshcontrib(1):

वृद्धिशील-पूर्ण-शब्द
यह वृद्धिशील शब्द के पूरा होने की अनुमति देता है। इस कमांड को शुरू करने के बाद, आपके द्वारा टाइप किए जाने वाले प्रत्येक अक्षर के बाद पूरा होने वाले विकल्पों की एक सूची दिखाई जा सकती है, जिसे आप ^Hया उसके साथ हटा सकते हैं DEL। रिटर्निंग प्रेस अब तक पूरा होने को स्वीकार करता है और आपको सामान्य संपादन पर लौटाता है (अर्थात, कमांड लाइन को तुरंत निष्पादित नहीं किया जाता है)। आप हिट कर सकते हैं TABसामान्य पूरा होने के ऐसा करने के लिए, ^G जब आप शुरू करने के लिए वापस राज्य निरस्त करने के लिए, और ^Dमैचों सूची।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.