Acho que é importante que o emacs destaque a linha atual.
O modo menor hl-line-mode faz isso. Você pode habilitá-lo em seu buffer atual com M-x hl-line-mode
, ou globalmente a partir de sua configuração do emacs:
(global-hl-line-mode 1)
Dê uma olhada no Emacswiki: HighlightCurrentLine . Também menciona outros modos menores que podem ser mais do seu interesse.
Editar:
Enquanto procurava pessoalmente na wiki, encontrei o crosshairs-mode . Eu acho que vou experimentar:
(crosshairs-mode 1)
(setq col-highlight-vline-face-flag t
col-highlight-face hl-line-face)
Editar2:
Eu gosto da linha horizontal, mas acho que a linha vertical constante distrai. Felizmente, crosshairs
também fornece uma função de flash flash-crosshairs
e um modo inativo toggle-crosshairs-when-idle
.
Para exibir a cruz no idle, eu tenho isso na minha configuração:
(require 'crosshairs)
(toggle-crosshairs-when-idle 1)
(setq col-highlight-vline-face-flag t
col-highlight-face hl-line-face)
Mas isso não pisca nos botões de buffer / janela, infelizmente não há ganchos para isso. Mas pelo menos o emacs lisp nos dá funções de aconselhamento , o que nos permite estender as funções existentes. Embora isso possa ser bastante complicado.
Isso irá piscar a mira após as chaves de buffer:
(defadvice switch-to-buffer (after switch-to-buffer-flash-crosshairs activate)
"Call 'flash-crosshairs' after 'switch-to-buffer'"
(flash-crosshairs))
Isso deve funcionar na maioria dos casos (quando a troca é feita sem switch-to-buffer
)
O interruptor da janela é mais difícil, já que os miniburadores (arquivo aberto, etc.) causam alguns problemas. Então, só pisca quando mudamos para outro 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
são os argumentos para a função aconselhada e ad-do-it
executa o original.
Para desativar o uso de avisos:
(ad-remove-advice 'select-window 'around 'select-window-flash-crosshairs)
(ad-remove-advice 'switch-to-buffer 'after 'switch-to-buffer-flash-crosshairs)
Eu acho que abrange a maioria dos casos, embora como eu disse, o conselho é complicado ...