dired-do-search
(A) 和(M-,)的行为tags-loop-continue
在 Emacs 24 中发生了变化。
如果搜索到达标记缓冲区的末尾,Emacs 23 中的可见缓冲区仍然是最后一个找到搜索字符串的缓冲区。在 Emacs 24 中,最后一次搜索丢失,另一个缓冲区(不清楚是哪个)变得可见。
如何在 Emacs 24 中恢复以前的行为?
你可以试试这个丑陋的黑客:
(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
.