预先非常感谢您的帮助。
在 Emacs 中,我喜欢使用 iseach-forward (C-s),但如果突出显示的字体单词位于屏幕中间而不是最底部的中心,我会更喜欢它。
我发现自己不断地这样做:
C-s foo
C-s C-s C-s...
哦!这就是我一直在寻找的“foo”!
C-1
有没有办法让搜索结果在屏幕中间居中?
Cheers
最好的方法可能是添加以下钩子:
(add-hook 'isearch-mode-end-hook 'recenter-top-bottom)
这将执行recenter-top-bottom
在每次成功的增量搜索完成时发出命令。
编辑:我已经调查了一些,并且在重复搜索相同字符串时执行的函数(即,连续输入C-s
or C-r
在主动搜索期间)似乎是isearch-repeat-forward
and/or isearch-repeat-backward
。因此,如果您还希望在每次重复时重新居中,除了定义上述钩子之外,您还需要建议所述函数,如下所示:
(defadvice
isearch-repeat-forward
(after isearch-repeat-forward-recenter activate)
(recenter-top-bottom))
(defadvice
isearch-repeat-backward
(after isearch-repeat-backward-recenter activate)
(recenter-top-bottom))
(ad-activate 'isearch-repeat-forward)
(ad-activate 'isearch-repeat-backward)
就我个人而言,我发现由此产生的行为非常烦人且令人迷失方向,但是古斯提布斯不存在争议。或许有所保留recenter-top-bottom
用于初始isearch-mode-end-hook
并使用recenter
单独向repeat
函数不会那么令人讨厌。
提供建议isearch-forward
其本身相当于添加我上面最初建议的钩子,并且似乎对重复搜索没有影响。添加钩子更简单,而且我认为更惯用,因此它可能应该比建议函数更受青睐。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)