是否可以在isearch模式下滚动?

时间:2010-03-18 05:22:01

标签: emacs elisp

有没有办法在不退出isearch模式的情况下滚动文档?我将isearch-allow-scroll设置为t,但这限制了我的滚动范围,以确保当前的isearch匹配在缓冲区中可见。理想情况下,我希望能够使用鼠标滚动滚动,在滚动时突出显示所有isearch匹配。

我知道M-x occur,但很多时候只是能够在isearch模式下滚动会更有效率(此外,M-x出现在折叠模式下也不能很好)。

3 个答案:

答案 0 :(得分:5)

如果你愿意,还有highlight-regexp。它将突出显示正则表达式,您可以照常滚动。

答案 1 :(得分:2)

看起来你想要的一般是不可能的。来自isearch.el内的文档:

;; scrolling within Isearch mode.  Alan Mackenzie (acm@muc.de), 2003/2/24
;;
;; The idea here is that certain vertical scrolling commands (like C-l
;; `recenter') should be usable WITHIN Isearch mode.  For a command to be
;; suitable, it must NOT alter the buffer, swap to another buffer or frame,
;; tamper with isearch's state, or move point.  It is unacceptable for the
;; search string to be scrolled out of the current window.  If a command
;; attempts this, we scroll the text back again.

换句话说,滚动距离不足以使搜索字符串移出窗口。

答案 2 :(得分:0)

尝试Icicles search - 例如,icicle-occur(在 Icicle 模式下绑定到 C - ')。

没有什么能阻止你用鼠标等滚动到你想要的地方。

冰柱搜索是一种不同类型的增量搜索。 icicle-occur就像增量发生一样:当您在迷你缓冲区中编辑输入时,线条会被该输入过滤。

搜索匹配候选人是完成候选人(例如,出现在*Completions*)。您可以使用C-down在搜索缓冲区中的匹配中导航,也可以使用C-RETC-mouse-2直接跳转。