2012-04-03 16 views
6

tôi bật chế độ hl trong phạm vi toàn cục với mã sau.cách tắt tính năng hl-line ở chế độ được chỉ định

(global-hl-line-mode t) 

để tắt tính năng hl-line ở chế độ được chỉ định. tôi làm điều đó với mã sau đây.

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

nhưng nó tắt tính năng hl-line cho phạm vi toàn cầu.

cách tắt tính năng hl-line ở chế độ được chỉ định?

+0

thể trùng lặp của [tự động vô hiệu hóa một chế độ nhỏ toàn cầu cho một chế độ chính cụ thể ] (http://stackoverflow.com/questions/6837511/automatically-disable-a-global-minor-mode-for-a-specific-major-mode) – phils

Trả lời

9

Thường có thông tin và tài liệu trong phần Commentary trong tệp nguồn.

[...] 
;; 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. 
[...] 

Vì vậy, bạn có thể đặt một thứ như thế này trong .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

Điều này không hiệu quả đối với tôi. Tôi đã thử như sau: '(add-hook 'term-mode-hook (lambda() (setq global-hl-line-mode nil)))'. Tôi đang cố tắt tính năng 'hi-line' khi đang ở chế độ' ansi-term'. Bất kỳ đề xuất? – modulitos

+0

Có lẽ 'setq-local' thay vì' make-variable-buffer-local'? –

1

sử dụng hl-line-mode insted of global-hl-line-mode.

EDIT: Bạn nói đúng. Điều này không hoạt động.

Bài bình luận nói rằng chế độ toàn cục không được sử dụng. Tôi mang nó đến có nghĩa là bạn không thể tắt tính năng này khi đã bật.

Tôi bật hl-line-mode trong móc chế độ lớn nơi tôi cần.

+0

tôi đã thử theo cách đó. nhưng "(hl-line-mode 0)" không thể tắt hl-line được bật bởi "(global-hl-line-mode t)" – luozengbin

+0

edited.zzzzzzzz –

0

viết dòng sau trong file dotEmacs của bạn, và sử dụng f5 để chuyển hl-line-mode

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

Các vấn đề liên quan