Frage Wie aktiviert man standardmäßig einen nicht-globalen Minor-Modus beim Start von Emacs?


Ich möchte aktivieren rainbow-mode Jedes Mal, wenn ich Emacs beginne, anstatt zu benutzen M-x rainbow-mode.

Ich denke, es gibt einen Befehl, den ich in meine .emacs-Datei geschrieben habe.

Ich habe alles Folgende versucht, aber keiner von ihnen hat funktioniert:

(require 'rainbow-mode)   

(rainbow-mode initialize)

(global-rainbow-mode)

Allgemeiner, wie lade ich jeden Modus / jedes Paket automatisch beim Start?


31
2018-04-16 22:24


Ursprung


Antworten:


rainbow-mode ist kein globaler Minor-Modus, daher muss er pro Puffer aktiviert werden.

Ich benutze es nur für CSS, also habe ich:

(add-hook 'css-mode-hook 'my-css-mode-hook)
(defun my-css-mode-hook ()
  (rainbow-mode 1))

Wenn du wirklich möchte, dass es global ist, überall können Sie selbst leicht einen globalen Nebenmodus definieren:

(define-globalized-minor-mode my-global-rainbow-mode rainbow-mode
  (lambda () (rainbow-mode 1)))

(my-global-rainbow-mode 1)

Sie können jede beliebige Logik hinzufügen (lambda () (rainbow-mode 1)) Funktion (die in jedem Puffer ausgewertet wird), um zu entscheiden, ob oder nicht tatsächlich Anruf (rainbow-mode 1) Wenn Sie mit elisp vertraut sind, können Sie diesen Ansatz problemlos erweitern, um Ihre spezifischen Anforderungen für den jeweiligen Modus zu erfüllen.


Allgemeiner, wie lade ich jeden Modus / jedes Paket automatisch beim Start?

Es kann variieren, aber die Ansätze, die ich gezeigt habe, würden für die meisten untergeordneten Modi ausreichen: Entweder Sie wollen sie wann immer aktiviert MODE ist aktiviert (es handelt sich um einen bestimmten anderen Modusnamen). In diesem Fall können Sie den MODE-hook Variable (die immer verfügbar sein wird) gemäß css-mode-hook Beispiel; oder Sie möchten, dass der Modus dauerhaft aktiviert ist. In diesem Fall ist ein globaler Minor-Modus ein guter Ansatz (da Sie ihn global ein- und ausschalten können). Einige kleinere Modi sind standardmäßig global (oder bieten globale Varianten an), Sie können jedoch bei Bedarf auch eigene erstellen my-global-rainbow-mode Beispiel.

Beachten Sie auch, dass Modi sein können abgeleitet von anderen Modi, in welchem ​​Fall alle relevant MODE-hook Haken werden ausgeführt (Details siehe https://stackoverflow.com/a/19295380/324105). Ein häufiger Anwendungsfall ist zu verwenden prog-mode-hook um die gewünschte Funktionalität zu aktivieren alle die Programmiermodi, die davon abgeleitet sind (die meisten Programmiermodi).

Denken Sie daran, dass viele (hoffentlich die meisten) Bibliotheken und Pakete Gebrauchsanweisungen enthalten. Wenn Sie keine Dokumentation finden, sollten Sie es versuchen M-x  find-library um die Bibliotheksdatei zu öffnen und dann die Kommentare oben zu lesen. Es gibt oft einen sehr informativen "Kommentar" -Abschnitt, und manchmal ist dies die primäre Quelle der Endbenutzer-Dokumentation, und erklären, wie sie ihre Funktionalität aktivieren.


33
2018-04-16 22:46