Saya ingin terus menggunakan pencocokan fuzzy dengan Ivy kecuali dalam swiper.
Variabel yang menentukan "pembuat regexp", seperti Ivy merujuk ke fungsi-fungsi ini, digunakan untuk fungsi pengumpulan mana 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.
Jadi, untuk mengubah pembuat regexp default dari ivy--regex-plusmenjadi ivy--regex-fuzzy, tetapi mempertahankan yang pertama swiper, Anda bisa
(setq ivy-re-builders-alist
'((swiper . ivy--regex-plus)
(t . ivy--regex-fuzzy)))
atau, lebih terprogram,
(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))
Ini dijelaskan lebih rinci dalam (ivy) Completion Styles.
Saya tidak terlalu suka [fuzzy matching] (setidaknya bukan sebagai default, sepanjang waktu)
Ivy memungkinkan Anda memutar pembuat regexp dengan cepat melalui antarmuka hydra-nya. Kalimat terakhir yang cukup tersembunyi dari (ivy) ivy--regex-fuzzymenyinggung ini, dan deskripsi yang lebih lengkap dapat ditemukan di bawah (ivy) Hydra in the minibuffer, tetapi sepertinya manual agak ketinggalan jaman mengingat sudah beberapa saat sejak rilis terakhir.
Hasilnya adalah, sejak 2017-07-04 , Ivy memungkinkan Anda untuk menelusuri pembuat regexp selama penyelesaian melalui C-om( ivy-rotate-preferred-builders). Sunting : seperti yang ditunjukkan Asme Justdalam komentar , pengikatan kunci default diubah menjadi C-oMpada 2019-02-06 .