突出显示当前活动窗口

问题描述 投票:0回答:4

有没有一种简单的方法可以改变活动窗口的背景颜色,以便轻松区分哪个窗口有输入?

我知道 hiwin-mode (https://github.com/masutaka/hiwin-mode)。但这种模式在与 helm 配合时存在问题。

我也知道 color-theme-buffer-local (https://github.com/vic/color-theme-buffer-local),我想知道是否可以自定义它来执行我想要的操作。

emacs
4个回答
11
投票

自动调暗其他缓冲区.el

您可能想看看

auto-dim-other-buffers.el
,可从 MELPA 购买。

auto-dim-other-buffers-mode
是一个全局小模式,它使得 非当前缓冲区不那么突出,使得哪个窗口更明显 有重点。

安装该模式的首选方法是从以下位置安装软件包 梅尔帕:

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
是一个全局小模式,它使得 非当前缓冲区不那么突出,使得哪个窗口更明显 有重点。

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

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


6
投票
(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
投票

我只想扩展huaiyuan

给出的答案

他的回答对我来说非常有效,除了一件事之外

如果我使用

C-x C-+
放大其中一个窗口,当我切换到另一个窗口时,我就会松开缩放。

为了保持我正在处理的每个窗口的缩放级别,我修改了他的最后一行代码,以便它指定非活动窗口的背景颜色,如下所示

(buffer-face-set '(:background "#000"))

其中 #000 是黑色的 RGB 值

我的代码

(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 '(:background "#000")))

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

0
投票

2024 年,最流行的选择似乎是 dimmer.el。它有一些不错的自定义选项,并且可以与其他现代插件很好地配合。

© www.soinside.com 2019 - 2024. All rights reserved.