Ich bin ziemlich neu in Emacs, aber ich weiß genug, um gefährlich zu sein. Ich habe meine .emacs-Datei von Grund auf neu erstellt und jetzt in einer Organisationsdatei gespeichert. Ich versuche jetzt, es auf das nächste Level zu bringen und meine Konfiguration benutzerfreundlicher für mich zu machen.Emacs-Funktion gibt Symbols Wert als Variable ist void:
Ich benutze meistens Emacs zum Schreiben. Bücher, Blogs, Drehbuchschreiben usw. Ich versuche eine Funktion zu erstellen, die mehrere Modi aktiviert und die Einstellungen im laufenden Betrieb hinzufügt.
Zum Beispiel verwende ich Olivetti-Modus beim Schreiben. Es zentriert den Text. Jedes Mal muss ich die Olivetti-Set-Breite anpassen. Ich dachte, ich würde Lust bekommen und die Rechtschreibprüfung aktivieren und auch den Linum-Modus ausschalten.
aber jedes Mal wenn ich es versuchen, erhalte ich die Fehlermeldung:
Symbol's value as variable is void: my-writing
Kann mir jemand erklären, was ich falsch mache? Ich habe ziemlich viel google-fu'd, aber ich habe eindeutig eine Lücke in meinem Verständnis von dem, was ich tue.
#+BEGIN_SRC emacs-lisp
(defun my-writing()
"Start olivetti mode, set the width to 120, turn on spell-check."
((interactive)
(olivetti-mode)
(setq olivetti-set-width . 120)
(flyspell-mode)
(global-linum-mode 0)))
(add-hook 'olivetti-mode-hook
(lambda() olivetti-mode my-writing t))
#+END_SRC
Vielen Dank im Voraus.
Ich habe alle Änderungen vorgenommen und es sieht genauso aus wie deins. Jetzt bekomme ich einen neuen Fehler: Die Lisp-Verschachtelung überschreitet 'max-lisp-eval-depth'. – MBH
Ich entschuldige mich für die Annahme, dass "Olivetti-Modus" ein Major-Modus war - es ist in der Tat ein Moll-Modus. Ich habe den Code aktualisiert. Bitte versuchen Sie es erneut mit der geänderten Version. – lawlist
Es funktioniert! Danke für die Hilfe und die Erklärung. (Ich hatte das vor ein paar Wochen versucht und so musste ich meine Akte durchgehen und den ganzen Unsinn beseitigen. Jetzt funktioniert es perfekt.) – MBH