我一直在半全屏幕配置中使用emacs,我的画面宽度为160个字符,与屏幕一样高。在这个布局中,我的窗户以某种我喜欢的方式分开。我想知道是否有办法在我调用help或shell命令时,在我的(点)所在的同一窗口中弹出帮助文件和消息(例如,当我运行异步shell时的输出),或者一个单独的框架,以免扰乱我的窗口布局和其中包含的缓冲区?我尝试过elscreen和win-mode;后者确实恢复了我的窗口布局,但要求我循环浏览窗口以关闭帮助或消息缓冲区(而不是现场的C-x k,如果它在同一个缓冲区中)...
谢谢,斯蒂芬
答案 0 :(得分:3)
你必须自己动手(听起来你对你想要的东西有一些非常具体的想法)。您可以在elisp手册的"Choosing Windows"部分找到开始所需的所有信息。听起来像same-window-buffer-names
和/或same-window-regexps
和same-window-p
会给你你想要的东西,尽管这些其他可能适合你的账单:special-display-buffer-names
,speical-display-regexps
,{ {1}},special-display-function
。
答案 1 :(得分:0)
请参阅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)))