回答:
以外のIvyでファジーマッチングを引き続き使用したいと思い
swiper
ます。
Ivyがこれらの関数を参照するように、どの「正規表現ビルダー」を決定する変数は、どのコレクション関数に使用されますか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.
だから、からデフォルトの正規表現ビルダーを変更するために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を使用すると、Hydraインターフェースを介してその場で正規表現ビルダーを回転できます。これを(ivy) ivy--regex-fuzzy
暗示するかなり隠された最後の文と、より完全な説明はに(ivy) Hydra in the minibuffer
ありますが、前回のリリースから少し時間が経過しているため、マニュアルは少し古くなっているようです。
つまり、2017-07-04以降、IvyではC-om(ivy-rotate-preferred-builders
)を介して、完了時に正規表現ビルダーを循環させることができます。編集:コメントで指摘されAsme Just
ているように、デフォルトのキーバインディングが2019-02-06に変更さC-oMれました。
ivy-rotate-preferred-builders
)はC-o M
現在デフォルトで私用です。
スワイパーで正規表現一致をオフにしたいが、それを他の場所でアクティブにしたい場合は、これをに追加してくださいuser-init-file
:
(setq ivy-re-builders-alist
'((swiper . regexp-quote)
(t . ivy--regex-fuzzy)))
一度だけ無効にしたい場合はM-r
、スワイパーで叩いてください。
M-r
バインディングについて言及する場合は+1 。ただし、OPではファジーマッチングを無効にすることのみを指定していることに注意してください。どの正規表現ビルダーがそれを置き換えるかは不明のままでした。