是否有一种简单的方法可以更改活动窗口的背景颜色,以轻松地区分哪个窗口具有输入?
我知道hiwin-mode(https://github.com/masutaka/hiwin-mode)。但是,此模式很难很好地掌控头盔。
我也知道color-theme-buffer-local(https://github.com/vic/color-theme-buffer-local),我想知道是否可以对其进行定制以实现我想要的功能。
您可能想看看auto-dim-other-buffers.elMELPA 提供的 。
这
auto-dim-other-buffers-mode是一种全局次要模式,它使非当前缓冲区不那么突出,从而使哪个窗口具有焦点更加明显。安装该模式的首选方法是从 MELPA 安装一个包:
Run Code Online (Sandbox Code Playgroud)M-x package-install RET auto-dim-other-buffers RET安装后,可以通过以下方式(全局)打开该模式:
Run Code Online (Sandbox Code Playgroud)M-x auto-dim-other-buffers-mode RET要在每次 Emacs 启动时启用该模式,请将以下内容添加到 Emacs 初始化文件(
~/.emacs或~/.emacs.d/init.el):Run Code Online (Sandbox Code Playgroud)(add-hook 'after-init-hook (lambda () (when (fboundp 'auto-dim-other-buffers-mode) (auto-dim-other-buffers-mode t))))要配置变暗的缓冲区的外观,请自定义
auto-dim-other-buffers-face. 这可以通过以下方式实现:Run Code Online (Sandbox Code Playgroud)M-x customize-face RET auto-dim-other-buffers-face RET这
auto-dim-other-buffers-mode是一种全局次要模式,它使非当前缓冲区不那么突出,从而使哪个窗口具有焦点更加明显。
对于给定的活动窗口,不显示相同缓冲区的所有其他窗口将设置为自定义背景。即,活动窗口和显示相同缓冲区的其他窗口将具有与其余窗口不同的背景颜色。根据您对已接受答案的评论,我相信最后一部分是您正在寻找的特定行为。
“非常感谢。这与我想要的非常接近。除了有两个窗口打开同一个缓冲区会导致两个窗口都被标记为“非活动”这一事实之外。这不是非常重要,但有没有一种简单的方法解决这个问题?”
(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)
Run Code Online (Sandbox Code Playgroud)
更改背景颜色(“#111”)以适合您的口味。