Chỉ bật chế độ khoảng trắng trong một số bộ đệm nhất định


8

Tôi muốn bật chế độ khoảng trắng cho tất cả các bộ đệm trừ các chế độ org. Thật dễ dàng để làm điều này khi emacs khởi động, nhưng vì tôi sử dụng một bản sao liên tục của emacs với chế độ daemon emacs nên tôi không thể làm theo cách đó.

Tôi đã thử:

(require 'whitespace)
(setq whitespace-line-column 80)
(setq whitespace-style '(face lines-tail))
(global-whitespace-mode t)
(add-hook 'org-mode-hook
      (lambda ()
          (visual-line-mode 1)
          (auto-fill-mode -1)
          (setq whitespace-style nil)))

nhưng ngay khi tôi truy cập bộ đệm chế độ org, tất cả các bộ đệm trong tương lai của tôi sẽ không còn chế độ khoảng trắng nữa.

Tôi đã nghĩ đến việc thêm một cái móc để bật chế độ khoảng trắng cho các chế độ chính khác nhưng đó có vẻ là một cách tồi để đi vì tôi không muốn liệt kê tất cả các chế độ có thể khác.

Tôi biết rằng có chế độ khoảng trắng cùng với chế độ khoảng trắng toàn cầu, nhưng tôi không chắc làm thế nào tôi có thể sử dụng nó để giúp đỡ ở đây.

Có cách nào khác để thực hiện điều này mà tôi không nghĩ đến không?


3
Bạn có thể sửa đổi global-whitespace-modeđịnh nghĩa bằng cách thêm (unless (eq major-mode 'org-mode) . . .). Hoặc, bạn có thể kích hoạt nó trên cơ sở mỗi chế độ chính thay vì toàn cầu - tức là, đối với mỗi chế độ chính, hãy sử dụng móc và (whitespace-mode 1). Ý tưởng của bạn cũng có thể hoạt động nếu bạn sử dụng (setq-local whitespace-style nil), nhưng về mặt kỹ thuật, chế độ vẫn hoạt động chỉ với ruột / umph được lấy ra.
luật


Điểm tốt về lambda trích dẫn. Không chắc chắn làm thế nào hoặc tại sao tôi lại kết thúc với nó theo cách đó nhưng tôi đã xóa nó khỏi .emacs Cảm ơn.
jcv

Câu trả lời:


17
(setq whitespace-global-modes '(not org-mode))

Xem C-hv whitespace-global-modes RET


Điều đó làm việc hoàn hảo. Cảm ơn. Tôi biết rằng phải có một cái gì đó đơn giản mà tôi đang thiếu.
jcv

4

Có thể dễ dàng hơn để tắt trực tiếp chế độ khoảng trắng, sử dụng

 (whitespace-mode -1)

Ngoài ra, whitespace-stylekhông phải là biến cục bộ đệm, vì vậy nó cũng được sửa đổi cho tất cả các bộ đệm khác. Thay vào đó hãy thử

(set (make-local-variable 'whitespace-style) nil)

Tôi thực sự ban đầu đã tắt chế độ khoảng trắng trực tiếp thay vì làm phiền với var kiểu khoảng trắng. Đó chỉ là sự lặp lại hiện tại của những nỗ lực của tôi. Tôi sẽ thử những gì mọi người đề xuất và sau đó cập nhật điều này với những gì làm việc cho tôi.
jcv

Điều này thực sự cũng hoạt động, nhưng như bạn tự nhận xét, trực tiếp tắt chế độ khoảng trắng thay vì xử lý kiểu là một giải pháp tốt hơn (mà câu trả lời ở trên là như vậy).
jcv
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.