ZSH इतिहास-वृद्धिशील-पैटर्न-खोज-पिछड़े में मैचों के माध्यम से साइकिल


10

मैंने हाल ही में इतिहास खोज का उपयोग करने के लिए स्विच किया history-incremental-pattern-search-backwardक्योंकि यह खोज में पैटर्न की अनुमति देता है। यहाँ है कि यह मेरे में कैसे सेटअप है.zshrc

bindkey -M vicmd '/' history-incremental-pattern-search-backward

यह बहुत अच्छा काम करता है, लेकिन मैं यह पता नहीं लगा सकता कि खोज मेनू से अगले मैच में कैसे जाया जाए।

% cat foobarbaz.txt
bck-i-search: f*baz

क्या ऐसा करने के लिए एक महत्वपूर्ण बाध्य है?

जवाबों:


12

अंत में सही भस्म मिला। आपको आवेषण मोड में पैटर्न खोज को मैप करने की आवश्यकता है। यह वह टुकड़ा था जो मुझे याद आ रहा था:

# Search backwards and forwards with a pattern
bindkey -M vicmd '/' history-incremental-pattern-search-backward
bindkey -M vicmd '?' history-incremental-pattern-search-forward

# set up for insert mode too
bindkey -M viins '^R' history-incremental-pattern-search-backward
bindkey -M viins '^F' history-incremental-pattern-search-forward

मैं ^Bडालने मोड में पीछे की खोज के लिए इस्तेमाल किया होगा , लेकिन मैं कुछ और करने के लिए मैप किया है। तो अब ^Rऔर ^Fमैचों के माध्यम से चक्र।


-Mकमांड क्या करता है? मेरे मामले में भी -Mकीवर्ड के बिना यह बहुत अच्छा काम करता है ..
अल्फा_989

-M keymapBindkey जो के लिए बाध्य लागू करने के लिए कीमैप बताता है। मैंने इसे इन्सर्ट मोड और कमांड मोड दोनों के लिए सेट किया है।
क्लेट्रॉन

स्पष्टीकरण के लिए धन्यवाद। मेरे मामले में मेरे पास बस है bindkey '^R' history-incremental-pattern-search-backward, और यह काम करता है। मैं भी /zsh में vi सामान्य मॉडल में डिफ़ॉल्ट कमांड का उपयोग करता हूं। इसमें मैं कमांड हिस्ट्री सर्च कर सकता हूं, और एक बार कमांड को ढूंढने के बाद, यह सिर्फ कमांड लाइन पर प्रदान करेगा। यदि आवश्यक हो तो फिर मैं अंतिम आदेश को संशोधित कर सकता हूं।
अल्फा_989

यदि मैं उपयोग करता हूं '^R' history-incremental-pattern-search-backward, तो यह मुझे खोज स्ट्रिंग से मेल खाने वाली अंतिम कमांड पर ले जाएगा। हालाँकि, मुझे वास्तव में कमांड को संपादित करने में सक्षम होने का कोई तरीका नहीं मिला है। एक उपयुक्त कमांड को खोजने के बाद, खोजकर्ता स्ट्रिंग को इन्टरमेंटल पॉटर खोज के माध्यम से मिलाते हुए, क्या कोई विशिष्ट कुंजी संयोजन हैं, जिसे मैं कमांड को संपादित करने में सक्षम होने के लिए दबा सकता हूं?
अल्फा_989

9

zshzleZsh 4.3.10 के लिए मैनुअल पेज के अनुसार , कोई भी कुंजी डिफ़ॉल्ट रूप से बाध्य नहीं है। आपको isearchमानचित्र में बाइंडिंग जोड़ने की आवश्यकता है , और केवल कुछ विजेट उपलब्ध हैं। उदाहरण के लिए, आप कर सकते हैं:

bindkey -M isearch '^R' history-incremental-search-backward
bindkey -M isearch '^S' history-incremental-search-forward

bindkey -lएक isearchमैपिंग नहीं दिखाता है
क्लेडट्रॉन

@ क्लैटट्रॉन: एक संस्करण मुद्दा होना चाहिए: isearch4.3.10 में नया है, जबकि history-incremental-pattern-search-backward4.3.7 में दिखाई दिया है (यदि मैं चेंगल को सही ढंग से पढ़ता हूं)।
गिल्स एसओ- बुराई को रोकें '

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