要求Emacs更清楚地突出显示哪个窗口(窗格)具有焦点(光标)

时间:2012-02-25 18:16:46

标签: emacs

说我将我的Emacs窗口分成多个图块,例如:

---------------------------
|            |            |
|            |            |
---------------------------
|                         |
|                         |
---------------------------

当我在瓷砖(也就是Emacs中的窗口)之间切换以编辑我的文件时(例如使用 Cx o ),我可以通过在视觉上找到光标(点)来查看我在哪个瓷砖上屏幕并检查每个图块状态栏中阴影的差异:

但是,将光标定位在大屏幕上并不容易,光标所在状态栏上的阴影差异几乎可以忽略不计:

这是选择相应窗口时状态栏的样子:

Img1

当相应的窗口时,这就是它的样子(注意绿色有点暗)

enter image description here

以上是GNU Emacs 23.3.1上的颜色主题zenburn

我的问题是:有没有办法让Emacs更清楚地指出哪个窗口/平铺/缓冲区是具有焦点的窗口/平铺/缓冲区?

2 个答案:

答案 0 :(得分:22)

绝对!

您可以使用.emacs中的以下内容更改模式行以突出显示活动栏(更改颜色和样式以适合您的偏好)。

(set-face-attribute  'mode-line
                 nil 
                 :foreground "gray80"
                 :background "gray25" 
                 :box '(:line-width 1 :style released-button))
(set-face-attribute  'mode-line-inactive
                 nil 
                 :foreground "gray30"
                 :background MY_BG_COLOR 
                 :box '(:line-width 1 :style released-button))

因为看起来你正在使用Zenburn颜色主题,你也可以在那里修复它。 只需打开名为zenburn.el的颜色主题库中的文件(或者它可能是color-theme-zenburn.el)并搜索以下行:

`(mode-line
  ((,class (:foreground ,zenburn-green+1
                       :background ,zenburn-bg-1
                       :box (:line-width -1 :style released-button)))))
`(mode-line-buffer-id ((,class (:foreground ,zenburn-yellow :weight bold))))
`(mode-line-inactive
  ((,class (:foreground ,zenburn-green-1
                       :background ,zenburn-bg-05
                       :box (:line-width -1 :style released-button)))))

并根据需要更改背景颜色和前景色。

答案 1 :(得分:6)

要获得更快速的解决方案,您可以使用Emacs的Smart Mode Line插件:颜色编码的固定宽度模式行。适用于Zenburn主题(我现在正在使用两者)。

顺便提一下,它在ELPA中可用。