Подтвердить что ты не робот

Попросив Emacs более четко выделить, какое окно (панель) имеет фокус (курсор)

Скажем, что мое окно Emacs разбито на несколько фрагментов, например:

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

Когда я переключаюсь между фрагментами (например, в Windows Emacs), чтобы редактировать мои файлы (например, используя C-x o), я могу видеть, на какой плите я нахожусь, визуально определяя курсор (точку) на экране и проверяя разницу в затенение в строке состояния каждой плитки:

Однако расположение курсора на большом экране непросто и разница в затенении в строке состояния, где курсор почти ничтожна:

Вот как выглядит строка состояния при выборе соответствующего окна:

        Img1

Вот как выглядит соответствующее окно не (обратите внимание, что зеленый цвет немного тускнеет)

        enter image description here

Вышеупомянутая цветовая тема zenburn в GNU Emacs 23.3.1.

Мой вопрос: есть ли способ, чтобы Emacs более четко указывал, какое окно/плитка/буфер является тем, у кого есть фокус?

4b9b3361

Ответ 1

Абсолютно!

Вы можете изменить модельный ряд, чтобы выделить активную панель, используя следующее в вашем .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)))))

и измените значения цветов фона и переднего плана по своему усмотрению.

Ответ 2

Для более быстрого решения вы можете использовать плагин Smart Mode Line для Emacs: цветная линия с фиксированной шириной. Отлично работает с темой Zenburn (я использую оба сейчас).

Он доступен в ELPA, кстати.