emacs - показать справку и буфер сообщений в текущем окне или в отдельном кадре? - PullRequest
1 голос
/ 20 сентября 2009

Я работал с emacs в полу-полноэкранной конфигурации, где мой кадр имеет ширину 160 символов и высоту экрана. В этом макете мои окна разделены определенным образом, который мне нравится. Интересно, есть ли способ сделать файлы справки и сообщения (например, вывод, когда я запускаю асинхронную оболочку) всплывающим или в том же окне, где находится мой (точка), когда я вызываю справку или команду оболочки, или в отдельный кадр, чтобы не мешать моему расположению окон и содержащимся в них буферам? Я пробовал elscreen и режим победителя; последний действительно восстанавливает мое расположение окон, но требует, чтобы я циклически проходил через окна, чтобы закрыть буфер справки или сообщений (а не C-x k на месте, если он находился в том же буфере) ...

Спасибо, Стивен

Ответы [ 2 ]

3 голосов
/ 20 сентября 2009

Вам придется кататься самостоятельно (звучит так, как будто у вас есть довольно конкретные идеи о том, что вы хотите). Всю информацию, необходимую для начала работы, можно найти в разделе «Выбор Windows» руководства elisp. Похоже, что same-window-buffer-names и / или same-window-regexps и same-window-p дадут вам то, что вы хотите, хотя эти другие могут соответствовать требованиям: special-display-buffer-names, speical-display-regexps, special-display-function, display-buffer-function.

0 голосов
/ 04 сентября 2011

См. One-On-One Emacs для кода, который реализует специальный дисплей *Help* буфер - IOW, *Help* всплывает в своем собственном кадре.

Код здесь: http://www.emacswiki.org/emacs/download/oneonone.el

Смотрите эту часть:

  ;; *Help* frame
  (if 1on1-*Help*-frame-flag
      (add-to-list
       'special-display-buffer-names
       (list "*Help*" '1on1-display-*Help*-frame
             (list (cons 'background-color 1on1-help-frame-background)
                   (cons 'mouse-color 1on1-help-frame-mouse+cursor-color)
                   (cons 'cursor-color 1on1-help-frame-mouse+cursor-color)
                   '(height . 40))))
    (setq special-display-buffer-names
          (remove-if (lambda (elt) (equal "*Help*" (car elt)))
                     special-display-buffer-names)))
...