Изменение управления фокусом буфера (pop-to-buffer против display-buffer) - PullRequest
4 голосов
/ 26 декабря 2011

Есть ли простой способ (через defadvice или иным образом) изменить поведение фокуса буферов, таких как help, grep, происходят? В частности, я хотел бы изменить поведение M-x occur для непосредственного перехода в буфер * Occur *. Некоторые режимы (например, ESS) обеспечивают более детальный контроль над отображением таких «временных» буферов, но существует ли общая стратегия для буферов, где такие элементы управления не предусмотрены?

1 Ответ

3 голосов
/ 26 декабря 2011
(add-hook 'occur-hook (lambda () (pop-to-buffer occur-buf)))

(add-hook 'help-mode-hook (lambda () (pop-to-buffer (get-buffer "*Help*"))))

(add-hook 'grep-mode-hook (lambda () (pop-to-buffer (get-buffer "*grep*"))))

Общий подход, в качестве альтернативы, заключается в использовании special-display-regexps или special-display-buffer-names для создания таких буферов special-display, которые помещают их в отдельный кадр (и выбирают его).Например:

(setq special-display-regexps '("[ ]?[*][^*]+[*]"))
...