2

dired-do-search(A) 和(M-,)的行为tags-loop-continue在 Emacs 24 中发生了变化。

如果搜索到达标记缓冲区的末尾,Emacs 23 中的可见缓冲区仍然是最后一个找到搜索字符串的缓冲区。在 Emacs 24 中,最后一次搜索丢失,另一个缓冲区(不清楚是哪个)变得可见。

如何在 Emacs 24 中恢复以前的行为?

4

1 回答 1

2

你可以试试这个丑陋的黑客:

(defadvice tags-loop-continue (around protect-search-end activate)
  (let ((oldbuf (current-buffer)))
    (unless (ignore-errors ad-do-it t)
      (switch-to-buffer oldbuf)
      (message "No more matches..."))))

这种环绕建议会记住当前缓冲区,并在实际执行tags-loop-continue发出错误信号时可能会恢复它,我们ignore-errors.

于 2013-05-25T03:55:34.257 回答