Ich möchte, dass der Whitespace-Modus für alle Puffer außer für den Organisationsmodus aktiviert ist. Es ist einfach, dies zu tun, wenn Emacs gestartet wird, aber da ich eine dauerhafte Kopie von Emacs im Emacs-Daemon-Modus verwende, kann ich das nicht einfach so machen.
Ich habe es versucht:
(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)))
Sobald ich jedoch einen Puffer im Organisationsmodus besuche, haben alle meine zukünftigen Puffer keinen Leerzeichenmodus mehr.
Ich dachte daran, einen Hook hinzuzufügen, um den Whitespace-Modus für andere Hauptmodi zu aktivieren, aber das scheint ein schlechter Weg zu sein, da ich nicht alle anderen möglichen Modi aufzählen möchte.
Ich weiß, dass es neben dem globalen Whitespace-Modus auch einen Whitespace-Modus gibt, aber ich bin mir nicht sicher, wie ich damit auch hier helfen kann.
Gibt es einen anderen Weg, um dies zu erreichen, an den ich nicht denke?
global-whitespace-mode
Definition durch Hinzufügen ändern(unless (eq major-mode 'org-mode) . . .)
. Oder Sie können es auf der Basis eines Hauptmodus anstatt global aktivieren - dh verwenden Sie für jeden Hauptmodus einen Hook und(whitespace-mode 1)
. Ihre Idee mag auch funktionieren, wenn Sie sie verwenden(setq-local whitespace-style nil)
, aber technisch gesehen ist der Modus immer noch aktiv, wenn nur die Eingeweide / Umph herausgenommen werden.lambda
sAntworten:
Sehen C-hv
whitespace-global-modes
RETquelle
Es ist wahrscheinlich einfacher, den Whitespace-Modus direkt mit zu deaktivieren
Da
whitespace-style
es sich nicht um eine pufferlokale Variable handelt, wird sie auch für alle anderen Puffer geändert. Versuchen Sie es stattdessenquelle