Emacs - нахождение курсора в нескольких окнах

Поместить

xterm*metaSendsEscape: true

в Вашем ~/.Xresources файл.

3
16.07.2013, 05:13
2 ответа

Я нахожу, что это помогает иметь выделение emacs текущая строка. Незначительный режим hl-line-mode делает это. Можно включить его в текущем буфере с M-x hl-line-mode, или глобально от Вашей конфигурации emacs:

(global-hl-line-mode 1)

Смотрите на Emacswiki: HighlightCurrentLine. Это также упоминает другие незначительные режимы, которые могли бы быть больше в Вашем интересе.


Править:

При просмотре Wiki самостоятельно я нашел режим креста нитей. Я думаю, что попробую его сам:

(crosshairs-mode 1)
(setq col-highlight-vline-face-flag  t
      col-highlight-face             hl-line-face)

Edit2:

Мне нравится горизонтальная строка, но я нахожу постоянную вертикальную строку недовольной. К счастью crosshairs также обеспечивает функцию флэш-памяти flash-crosshairs и нерабочий режим toggle-crosshairs-when-idle.

Для отображения перекрестия на неактивном, у меня есть это в моей конфигурации:

(require 'crosshairs)
(toggle-crosshairs-when-idle 1)
(setq col-highlight-vline-face-flag  t
      col-highlight-face             hl-line-face)

Но это не высветится на переключателях буфера/окна, к сожалению, нет никаких рычагов для этого. Но по крайней мере шепелявость emacs дает нам советующий функциям, которые позволяют нам расширять существующие функции. Хотя это может быть довольно хитро.

Это высветит перекрестие после буферных переключателей:

(defadvice switch-to-buffer (after switch-to-buffer-flash-crosshairs activate)
  "Call `flash-crosshairs' after `switch-to-buffer'"
  (flash-crosshairs))

Это должно работать в большинстве случаев (когда переключатель обходится без switch-to-buffer)

Переключатель окна является более трудным, так как мини-буферы (открытый файл и т.д.) вызывают некоторые проблемы. Поэтому только высветитесь, когда мы переключимся на другой буфер:

(defadvice select-window (around select-window-flash-crosshairs activate)
  "Call `flash-crosshairs' after `select-window', if switching to another buffer.
The check is necessary to prevent issues with mini-buffer switching."
  (let (cons (cur-buffer-name (buffer-name (current-buffer)))
             ad-arg-bindings)
    ad-do-it
    (unless (string= (buffer-name (window-buffer window))
                     cur-buffer-name)
      (flash-crosshairs))))

ad-arg-bindings аргументы рекомендуемой функции и ad-do-it выполняет оригинал.

Деактивировать использование советов:

(ad-remove-advice 'select-window 'around 'select-window-flash-crosshairs)
(ad-remove-advice 'switch-to-buffer 'after 'switch-to-buffer-flash-crosshairs)

Я думаю, что покрывает большинство случаев, хотя как я сказал, что уведомление хитро...

2
27.01.2020, 21:17

Я искал старый пакет Emacs с именем e-other-windowи нашел этот вопрос во время поиска в сети. Наконец, мне пришлось копаться в своем предыдущем компьютере и найти его снова, поэтому я просто загрузил его на Github, чтобы поделиться им со всеми (, это лучшая резервная копия, которую я могу сделать ).

https://github.com/N-Mi/e-other-window

e-other-window.el --- flash windows when you change to them

This is a small usefull Emacs package from Kevin A. Burton that flashes the current window when switching from a window to another using a keybinding.

В сочетании с hl -строкой -режимом мне очень легко найти, где находится курсор в кадре с 2, 3 или 4 окнами.

3
27.01.2020, 21:17

Теги

Похожие вопросы