Emacs 24中dired-do-search
(A)和tags-loop-continue
(M-,)的行为发生了变化。
如果搜索到达标记缓冲区的末尾,则Emacs 23中的可见缓冲区仍然是找到搜索字符串的最后一个缓冲区。在Emacs 24中,最后一次搜索丢失,另一个缓冲区(不清楚哪个)变得可见。
如何在Emacs 24中恢复以前的行为?
答案 0 :(得分: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
的实际执行发出错误信号around-advice,则此trap with ignore-errors
会记住当前缓冲区并可能会恢复它。