Answers:
除了在中,我想继续对常春藤使用模糊匹配
swiper
。
Ivy引用这些函数来确定哪个“ regexp生成器”的变量用于哪个收集函数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允许您通过其hydra界面动态旋转正则表达式生成器。的相当隐蔽最后一句(ivy) ivy--regex-fuzzy
暗指这一点,更全面的描述下可以找到(ivy) Hydra in the minibuffer
,但它看起来像手册给定的有点过时它是一个小而自上次发布。
结果是,自2017年7月4 日起,Ivy允许您在完成时通过C-om(ivy-rotate-preferred-builders
)循环浏览正则表达式构建器。编辑:作为所指出Asme Just
的评论,默认键绑定改为C-oM在2019年2月6日。
ivy-rotate-preferred-builders
)C-o M
目前默认为我。
如果您想在swiper中关闭正则表达式匹配,但在其他地方保持激活状态,请将其添加到您的user-init-file
:
(setq ivy-re-builders-alist
'((swiper . regexp-quote)
(t . ivy--regex-fuzzy)))
如果您只想停用一次,请点击M-r
swiper。
M-r
装订。但是请注意,OP仅指定了他们希望禁用模糊匹配。尚不清楚哪个正则表达式生成器应替换它。