缓冲区列表在Emacs 24中被dired-do-search搞砸了

时间:2013-05-23 16:36:03

标签: emacs emacs24

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

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

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

1 个答案:

答案 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会记住当前缓冲区并可能会恢复它。