स्वीपर को छोड़कर हर जगह आइवी फजी मैचिंग सक्षम करें


10

मैं कुछ समय से उपयोग कर flx-ido-modeरहा हूं और मुझे यह पसंद है। आइवी का उपयोग करके उसी तरह व्यवहार कर सकते हैं ivy--regex-fuzzy

समस्या यह है कि swiperअब फजी मिलान का भी उपयोग किया जाएगा और इस मामले में मुझे वास्तव में यह पसंद नहीं है (कम से कम डिफ़ॉल्ट रूप में, हर समय नहीं)।

इसलिए मैं इवी को छोड़कर फजी मैचिंग का उपयोग जारी रखना चाहूंगा swiper। क्या इसे कॉन्फ़िगर करने का कोई तरीका है? या क्या मैं किसी तरह बता सकता हूं swiperकि मैं वास्तव में "उप" की तलाश कर रहा हूं जो अभी कुछ उपसर्ग कर रहा है?

जवाबों:


16

मैं इवी को छोड़कर फजी मैचिंग का उपयोग जारी रखना चाहूंगा swiper

वैरिएबल जो "रेगेक्सप बिल्डर" निर्धारित करता है, जैसा कि आइवी इन कार्यों को संदर्भित करता है, का उपयोग किस संग्रह समारोह के लिए किया जाता है ivy-re-builders-alist:

ivy-re-builders-alist is a variable defined in ‘ivy.el’.
Its value is ((t . ivy--regex-plus))

Documentation:
An alist of regex building functions for each collection function.

Each key is (in order of priority):
1. The actual collection function, e.g. ‘read-file-name-internal’.
2. The symbol passed by :caller into ‘ivy-read’.
3. ‘this-command’.
4. t.

Each value is a function that should take a string and return a
valid regex or a regex sequence (see below).

Possible choices: ‘ivy--regex’, ‘regexp-quote’,
‘ivy--regex-plus’, ‘ivy--regex-fuzzy’.

If a function returns a list, it should format like this:
’(("matching-regexp" . t) ("non-matching-regexp") ...).

The matches will be filtered in a sequence, you can mix the
regexps that should match and that should not match as you
like.

तो, डिफ़ॉल्ट regexp बिल्डर को इससे बदलने के ivy--regex-plusलिए ivy--regex-fuzzy, लेकिन आप के लिए पूर्व को रख swiperसकते हैं

(setq ivy-re-builders-alist
      '((swiper . ivy--regex-plus)
        (t      . ivy--regex-fuzzy)))

या, अधिक प्रोग्रामिक रूप से,

(with-eval-after-load 'ivy
  (push (cons #'swiper (cdr (assq t ivy-re-builders-alist)))
        ivy-re-builders-alist)
  (push (cons t #'ivy--regex-fuzzy) ivy-re-builders-alist))

इसमें और अधिक विस्तार से वर्णन किया गया है (ivy) Completion Styles

मुझे वास्तव में पसंद नहीं है [फजी मिलान] (कम से कम डिफ़ॉल्ट रूप से, हर समय नहीं)

आइवी आपको अपने हाइड्रा इंटरफेस के माध्यम से मक्खी पर रेगेक्सप बिल्डर को घुमाने की अनुमति देता है। इसके लिए सभी दृष्टिकोणों का काफी छिपा हुआ अंतिम वाक्य (ivy) ivy--regex-fuzzy, और अधिक पूर्ण विवरण के तहत पाया जा सकता है (ivy) Hydra in the minibuffer, लेकिन ऐसा लगता है कि मैनुअल थोड़ा पुराना है , क्योंकि यह अंतिम रिलीज के बाद से थोड़ा समय दिया गया है

अपशॉट यह है कि, 2017-07-04 के बाद से , आइवी आपको पूरा होने के दौरान regexp बिल्डरों के माध्यम से साइकिल चलाने की अनुमति देता है C-om( ivy-rotate-preferred-builders)। संपादित करें : के रूप में द्वारा बताया Asme Justमें एक टिप्पणी , बाध्यकारी डिफ़ॉल्ट कुंजी में बदल गया था C-oMपर 2019/02/06


क्या आप कृपया थोड़ा सा साइकिल पूरा करने के बारे में विस्तार से बता सकते हैं? उदाहरण के लिए यदि मैंने एक स्विपर खोज शुरू की है, तो सह मुझे तुरंत एक "कमांड-एक्ज़ीक्यूट: ओपन लोड फ़ाइल नहीं दे सकता है: ऐसी कोई फ़ाइल या निर्देशिका, आइवी-हाइड्रा" संदेश नहीं।
B_old

@B_old ivy-hydraपहले वैकल्पिक पैकेज स्थापित करने का प्रयास करें । एक वैकल्पिक (यानी हमेशा स्थापित नहीं) सुविधा के लिए एक डिफ़ॉल्ट कीबाइंडिंग मौजूद होना चाहिए का नैतिक सवाल पहले ही उठाया जा चुका है और यथास्थिति जल्द ही बदलने की संभावना नहीं लगती है। यदि आपके पास अन्य प्रश्न हैं ivy-hydraजिनके बारे में मैनुअल पता नहीं करता है, तो कृपया उनके लिए नए Emacs SE प्रश्न बनाने पर विचार करें।
तुलसी

( ivy-rotate-preferred-builders) C-o M वर्तमान में डिफ़ॉल्ट रूप से मेरे लिए है।
Asme Just

: धन्यवाद @AsmeJust, कि एक पिछड़े-असंगत परिवर्तन सिर्फ 2 सप्ताह पहले बनाया गया था github.com/abo-abo/swiper/commit/...
तुलसी

2

यदि आप स्वैपर में रेगेक्स मिलान को बंद करना चाहते हैं, लेकिन इसे कहीं और सक्रिय रखें, तो इसे अपने में जोड़ें user-init-file:

(setq ivy-re-builders-alist
      '((swiper . regexp-quote)
        (t      . ivy--regex-fuzzy)))

यदि आप इसे सिर्फ एक बार निष्क्रिय करना चाहते हैं, तो M-rस्वीपर में हिट करें।


आसान M-rबंधन का उल्लेख करने के लिए +1 । ध्यान दें, हालांकि, ओपी केवल निर्दिष्ट करता है कि वे फजी मिलान अक्षम करना चाहते हैं; जो regexp बिल्डर को प्रतिस्थापित करना चाहिए वह अस्पष्ट था।
तुलसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.