Ich möchte weiterhin Fuzzy Matching mit Ivy verwenden, außer in swiper
.
Die Variable, die bestimmt, welcher "Regexp Builder", wie Ivy auf diese Funktionen verweist, für welche Erfassungsfunktion verwendet wird 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.
Um den Standard-Regexp-Builder von ivy--regex-plus
auf zu ändern ivy--regex-fuzzy
, aber den ersteren für beizubehalten swiper
, können Sie dies tun
(setq ivy-re-builders-alist
'((swiper . ivy--regex-plus)
(t . ivy--regex-fuzzy)))
oder programmatischer,
(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))
Dies wird ausführlicher in beschrieben (ivy) Completion Styles
.
Ich mag [Fuzzy Matching] nicht wirklich (zumindest nicht immer als Standard)
Mit Ivy können Sie den Regexp-Builder über die Hydra-Schnittstelle im laufenden Betrieb drehen. Der ziemlich versteckte letzte Satz von (ivy) ivy--regex-fuzzy
Anspielungen darauf und eine ausführlichere Beschreibung finden Sie unter (ivy) Hydra in the minibuffer
, aber es sieht so aus, als ob das Handbuch etwas veraltet ist, da es seit der letzten Veröffentlichung eine Weile her ist.
Das Ergebnis ist, dass Sie mit Ivy seit dem 04.07.2017 während der Fertigstellung über C-om( ivy-rotate-preferred-builders
) durch Regexp-Builder blättern können . Bearbeiten : Wie Asme Just
in einem Kommentar erwähnt , wurde die Standardschlüsselbindung C-oMam 06.02.2019 in geändert .
ivy-hydra
Paket zu installieren . Die moralische Frage, ob für eine optionale (dh nicht immer installierte) Funktion eine Standardschlüsselbindung vorhanden sein sollte, wurde bereits aufgeworfen, und es ist unwahrscheinlich, dass sich der Status Quo bald ändert. Wenn Sie weitere Fragen haben,ivy-hydra
die im Handbuch nicht behandelt werden, können Sie neue Emacs SE-Fragen für diese erstellen.ivy-rotate-preferred-builders
) istC-o M
für mich derzeit standardmäßig.Wenn Sie den Regex-Abgleich in Swiper deaktivieren möchten, ihn aber an anderer Stelle aktiv lassen möchten, fügen Sie Folgendes hinzu
user-init-file
:Wenn Sie es nur einmal deaktivieren möchten,
M-r
drücken Sie den Swiper.quelle
M-r
Bindung. Beachten Sie jedoch, dass OP nur angegeben hat, dass der Fuzzy-Abgleich deaktiviert werden soll. Welcher Regexp-Builder ihn ersetzen sollte, war unklar.