2011-11-07 11 views
6

Tôi đang cố gắng nhận các emacs whitespace-mode được bật tự động chỉ ở một số chế độ nhất định. Theo tài liệu, hãy bật global-whitespace-mode và đặt biến số whitespace-global-modes sẽ thực hiện chính xác điều đó. Nhưng tôi không thể làm cho nó hoạt động chính xác.Cách bật chế độ khoảng trắng chỉ cho một số chế độ nhất định

Trong .emacs.el của tôi, tôi có:

(require 'whitespace) 
(global-whitespace-mode t) 
(setq whitespace-global-modes '(c-mode c++-mode)) 

nhưng định nghĩa của whitespace-global-modes dường như bị bỏ qua; global-whitespace-mode được bật trong mọi bộ đệm. Tôi biết rằng tôi đã có tên biến chính xác, bởi vì C-h v whitespace-global-modes cho tôi biết:

whitespace-global-modes's value is (c-mode c++mode) 

Documentation: 
Modes for which global `whitespace-mode' is automagically turned on. 
... 

Vì vậy, tôi đang làm gì sai? Tôi đã hiểu sai mục đích của whitespace-global-modes?

Tôi đang chạy các emacs 23.2.1.

Trả lời

3

Nó chỉ ra rằng các lệnh trong .emacs.elcủa tôi là (hầu hết) hoạt động sau khi tất cả. Điều làm tôi bối rối là "WS" xuất hiện trong mô hình của tất cả các bộ đệm, mặc dù chỉ các bộ đệm C và C++ mới nhận được hiệu quả của whitespace-mode, như mong muốn.

Vấn đề khác là tôi có lỗi đánh máy: c++mode thay vì c++-mode.

+0

Hmm, vậy ý ​​nghĩa của WS trong dòng chế độ là gì? Tôi bối rối. WS cho toàn cầu, ws cho địa phương ... loại điều đó? –

5

Dường như ý nghĩa của chế độ toàn cục khoảng trắng rất khác với ý nghĩa của bạn (và tôi).

sao bạn không thử

(require 'whitespace) 

(add-hook 'c-mode-hook 
    (function (lambda() 
       (whitespace-mode t)))) 

và lặp lại điều tương tự cho C++ - chế độ?

+0

Tôi nghĩ rằng điều đó cũng có hiệu quả, nhưng tôi thực sự muốn có được 'khoảng trắng toàn cục-chế độ 'để hoạt động. Tôi đoán một trong những lợi thế của giải pháp của bạn là "WS" sẽ không xuất hiện trong modeline cho bộ đệm mà nó không làm bất cứ điều gì. – jchl

+0

Có, WS so với ws cũng rất khó hiểu đối với tôi. –

+0

Cảm ơn bạn rất nhiều! Điều này giải quyết vấn đề của các tệp mới được tạo và bộ đệm đầu không tuân theo định nghĩa toàn cầu. Việc thêm các móc cho mỗi chế độ (như được mô tả trong câu trả lời của ông Sevinç) sẽ loại bỏ sự cần thiết phải tự tay bật tính năng tô màu trắng cho các tệp mới và/hoặc bộ đệm đầu. Hành vi toàn cục đã gây nhầm lẫn vì định nghĩa toàn cầu đã làm việc cho các tệp hiện có được mở bằng ứng dụng, nhưng không phải là tệp mới hoặc bộ đệm đầu. – lawlist