2015-06-25 3 views
1

Я пытаюсь включить hl-line-режим только для dired-mode, но его не работает. Включение глобального-hl-режима работает, но это каждый буфер не только тот, который я не хочу.Как включить hl-line-режим для Dired?

(defun hl-mode-for-dired() 
    (setq hl-line-mode 1) 
) 

(add-hook 'dired-mode-hook 'hl-mode-for-dired) 

Я получаю этот вывод ошибки в моем журнале emacs, если я пытаюсь выполнить elisp. Другой вопрос, почему ошибка выводится так?

hl-mode-for-dired diredp-nb-marked-in-mode-name #[nil "ÁÀ!ÂÃÄ!Ä " 
[font-lock-defaults make-local-variable (... t nil nil beginning-of-line) 
fboundp font-lock-refresh-defaults] 2] #[nil "ÆÇ\" È=ÉÇÊ#ÆË\"$ 
È=*ÉËÌ#)ÍÎÏÐÑ!QAA²AA² AA²ÉÒ Ó\"Ô#ÉÒÓ\"Õ#ÉÒÓ 
\"Ö#," [dired-mode-map now bdjc bdj sep map lookup-key "J" 
undefined define-key bmkp-dired-jump " 
" ...] 6] #[nil "ÁÀ!Â" [bookmark-make-record-function make-local-variable 
bmkp-make-dired-record] 2] dired-extra-startup) 

ответ

3

Это все, что вам нужно:

(add-hook 'dired-after-readin-hook 'hl-line-mode) 

hl-line-modeявляется местным крючком. global-hl-line-modeглобальный крюк. Вы хотите его только для Dired буферов, а это значит, что вы хотите hl-line-mode.


О, и использовать это, чтобы отключить его:

(remove-hook 'dired-after-readin-hook 'hl-line-mode) 
+0

Как вы узнали или знаете использовать Dired-после-крючок читаешь, в отличие от Dired режима трубки? – bneil

+0

'C-h f' для каждого. Но вы можете попробовать каждый из них. В этом случае будет работать. Но вы увидите небольшие различия при включении/выключении, когда вы используете 'g' против, скажем,' C-x v', для обновления буфера Dired. – Drew

+0

если я пытаюсь установить hl-line-mode-режим-hook-hook, я получаю сообщение об ошибке, которое я разместил в своем вопросе. Думаю, вопрос, который у меня есть, - это то, как можно найти крючки для крючков? как, как вы нашли поучаный-после-readin-hook? Ch f позволяет вам описать функцию, но это предполагает, что вы уже знаете имя для ввода – bneil

Смежные вопросы