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-plus
menjadi 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-fuzzy
menyinggung 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 Just
dalam komentar , pengikatan kunci default diubah menjadi C-oMpada 2019-02-06 .
ivy-hydra
paket opsional terlebih dahulu. Pertanyaan moral apakah ikatan kunci default harus ada untuk fitur opsional (yaitu tidak selalu diinstal) telah dinaikkan dan status quo sepertinya tidak akan segera berubah. Jika Anda memiliki pertanyaan lain tentangivy-hydra
mana manual ini tidak membahas, silakan mempertimbangkan membuat pertanyaan SE Emacs baru untuk mereka.ivy-rotate-preferred-builders
)C-o M
untuk saya saat ini secara default.Jika Anda ingin mematikan pencocokan regex di swiper, tetapi tetap aktif di tempat lain, tambahkan ini ke
user-init-file
:Jika Anda ingin menonaktifkannya sekali saja, tekan
M-r
swiper.sumber
M-r
pengikatan praktis . Perhatikan, bagaimanapun, bahwa OP hanya menentukan mereka ingin pencocokan fuzzy dinonaktifkan; pembangun regexp mana yang harus menggantinya tidak jelas.