2012-04-03 13 views
6

グローバルスコープでhl-modeを有効にするには、次のコードを使用します。指定されたモードでhl-line機能を無効にする方法

(global-hl-line-mode t) 

指定されたモードでhl-line機能をオフにする。私は次のコードでそれを行います。

(add-hook 'org-mode-hook (lambda() (global-hl-line-mode 0))) 

ただし、グローバルスコープのhlライン機能はオフになっています。

指定されたモードでhl-line機能を無効にする方法はありますか?

+0

](http://stackoverflow.com/questions/6837511/automatically-disable-a-global-minor-mode-for-a-specific-major-mode) – phils

答えて

9

多くの場合、ソースファイルのCommentary セクションに情報とドキュメントがあります。

[...] 
;; You could make variable `global-hl-line-mode' buffer-local and set 
;; it to nil to avoid highlighting specific buffers, when the global 
;; mode is used. 
[...] 

このようにして、.emacsに入力することができます。

(global-hl-line-mode) 
(make-variable-buffer-local 'global-hl-line-mode) 
(add-hook 'some-mode-hook (lambda() (setq global-hl-line-mode nil))) 
... 
+0

これは私のためには機能しません。 '(add-hook 'term-mode-hook(lambda()(setq global-hl-line-mode nil)))'を試してみました。私は 'ansi-term 'モードで' hi-line'機能をオフにしようとしています。助言がありますか? – modulitos

+0

'make-variable-buffer-local'ではなく' setq-local'でしょうか? –

1

hl-line-mode insted global-hl-line-mode

編集:そうです。これは機能しません。

解説では、グローバルモードは使用されないことを示しています。私は にそれを取ることは、それが有効になったらそれを選択的に無効にすることはできないことを意味します。

hl-line-modeを私が必要とするメジャーモードのフックで有効にします。

+0

私はすでにそのようにしています。 "(hl-line-mode 0)"は "(global-hl-line-mode t)"で点灯するhl-lineをオフにすることはできません – luozengbin

+0

edited.zzzzzzzz –

0

は、[自動的に特定のメジャーモードのグローバルマイナーモードを無効にするのが重複する可能性をあなたのdotEmacsファイルに次の行を書き、HL-行モードを切り替えるには、F5キーを使用し

(global-set-key [f5] 'hl-line-mode)

関連する問題