Ich fand this question etwas über das Thema, aber gibt es einen Weg [in Emacs], um einen untergeordneten Modus (oder eine Liste davon) basierend auf Erweiterung? Zum Beispiel ist es ziemlich einfach, um herauszufinden, dass die großen Modi wie soEmacs Auto-Minor-Modus basierend auf der Erweiterung
(setq auto-mode-alist
(cons '("\\.notes$" . text-mode)
auto-mode-alist))
und was manipuliert werden würde ich im Idealfall in der Lage sein mag, ist zu tun
(setq auto-minor-mode-alist
(cons '("\\.notes$" . auto-fill-mode)
auto-minor-mode-alist))
Die akzeptieren Antwort des verknüpften Frage erwähnt Haken, speziell temp-buffer-setup-hook
. Um dies zu nutzen, müssen Sie sich wie eine Funktion zum Haken hinzufügen, so
(add-hook 'temp-buffer-setup-hook 'my-func-to-set-minor-mode)
Meine Frage ist zweifach:
- Gibt es einen einfacheren Weg, dies zu tun, ähnlich zu den wichtigsten Modi?
- Wenn nicht, wie würde man die Funktion für den Haken schreiben?
- Es muss der Dateipfad gegen einen regulären Ausdruck überprüft werden. Wenn es übereinstimmt, aktivieren Sie den gewünschten Modus (z. B.
auto-fill-mode
).
- Es muss der Dateipfad gegen einen regulären Ausdruck überprüft werden. Wenn es übereinstimmt, aktivieren Sie den gewünschten Modus (z. B.
Feeble und Buggy Versuch einer Lösung:
; Enables the given minor mode for the current buffer it it matches regex
; my-pair is a cons cell (regular-expression . minor-mode)
(defun enable-minor-mode (my-pair)
(if (buffer-file-name) ; If we are visiting a file,
; and the filename matches our regular expression,
(if (string-match (car my-pair) buffer-file-name)
(funcall (cdr my-pair))))) ; enable the minor mode
; used as
(add-hook 'temp-buffer-setup-hook
(lambda() (enable-minor-mode ("\\.notes$" . auto-fill-mode))))
Wenn Sie v Blick auf 'Ch Auto-Modus-alist' werden die Erweiterungen in der Regel geschrieben als' "\\ Hinweise \\ '" ' . Siehe das letzte * einzige * Zitat. –
Ich werde verdammt sein. Das habe ich verpasst, als ich den Typ gemacht habe. Wahrscheinlich genau erklärt das folgende Backslash Thing -_- –