2015-10-18 173 views

回答

2

自动点心等,buffers.el

你可能想看看auto-dim-other-buffers.el,可从MELPA。

auto-dim-other-buffers-mode是一个全球性的次要模式这使得 非当前缓冲器不太突出使之更清楚哪个窗口 具有焦点。

安装模式的优选方式是通过从 MELPA安装一个包:

M-x package-install RET auto-dim-other-buffers RET 

一旦安装,模式可以在(全局)被开启以:

M-x auto-dim-other-buffers-mode RET 

为了使每次Emacs启动时启用该模式,将以下内容添加到Emacs初始化文件(~/.emacs~/.emacs.d/init.el) :

(add-hook 'after-init-hook (lambda() 
    (when (fboundp 'auto-dim-other-buffers-mode) 
    (auto-dim-other-buffers-mode t)))) 

配置缓存如何暗淡的样子,定制 auto-dim-other-buffers-face

M-x customize-face RET auto-dim-other-buffers-face RET 

auto-dim-other-buffers-mode是一个全球性的次要模式这使得 非当前缓冲器不太突出使之更清楚哪个窗口 具有聚焦:这可以通过以下方式实现。

对于给定的活动窗口,所有其他窗口不显示相同的缓冲将被设置为自定义背景。即,活动窗口和显示相同缓冲区的其他窗口将具有不同于其余窗口的背景颜色。我相信最后一部分是您正在寻找的具体行为,根据您对已接受答案的评论。

“非常感谢你,这是非常接近我想要的。除 事实,有两个窗口打开同一个缓冲区导致两个 窗口被标记为‘无效’。这不是超级很重要,但是 有解决这个问题的简单方法吗?“

+1

这是一个非常好的模式。谢谢! – Tohiko

4
(defun highlight-selected-window() 
    "Highlight selected window with a different background color." 
    (walk-windows (lambda (w) 
        (unless (eq w (selected-window)) 
        (with-current-buffer (window-buffer w) 
         (buffer-face-set '(:background "#111")))))) 
    (buffer-face-set 'default)) 

(add-hook 'buffer-list-update-hook 'highlight-selected-window) 

更改背景颜色(“#111”)以适应您的口味。

+0

非常感谢。这与我想要的非常接近。除了有两个窗口打开相同缓冲区的事实导致两个窗口被标记为“不活动”。这不是非常重要,但有没有简单的方法来解决这个问题? – Tohiko

+0

如何使用'clone-indirect-buffer-other-window'(C-x 4 c)来获取这两个窗口?如果这不适用于您,您可以切换两个表达式以将两个窗口标记为活动状态。 – huaiyuan