在Vim中,我可以:set wrapscan
,这样当我进行增量搜索时,无论第一个匹配项在光标之上还是之下,光标都会跳到第一个匹配项。
在Emacs中,如果我通过C-s
开始搜索,则如果第一个匹配项位于光标上方,则搜索失败并显示失败I-search。如果我再次点击C-s
,则它将包装搜索,并说“包裹I-搜索”。如何像在Vim中一样默认包装和跳过光标,而无需再次C-s
?
最佳答案
最简单的方法是使用以下默认建议:
(defadvice isearch-repeat (after isearch-no-fail activate)
(unless isearch-success
(ad-disable-advice 'isearch-repeat 'after 'isearch-no-fail)
(ad-activate 'isearch-repeat)
(isearch-repeat (if isearch-forward 'forward))
(ad-enable-advice 'isearch-repeat 'after 'isearch-no-fail)
(ad-activate 'isearch-repeat)))
当Isearch失败时,它将立即尝试重新包装。请注意,暂时禁用此缺陷非常重要,以防止在没有匹配项时出现无限循环。
关于search - 自动包装I-搜索?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/285660/