ho trovato un po 'this question sul tema, ma c'è un modo [in Emacs] per impostare un modo minore (o una lista di esso) sulla base di estensione? Ad esempio, è abbastanza facile per scoprire che i principali modi possono essere manipolati in questo modoEmacs auto-minor-mode in base all'estensione
(setq auto-mode-alist
(cons '("\\.notes$" . text-mode)
auto-mode-alist))
e quello che mi piacerebbe idealmente piace essere in grado di fare è
(setq auto-minor-mode-alist
(cons '("\\.notes$" . auto-fill-mode)
auto-minor-mode-alist))
La accettare risposta del collegato la domanda menziona i ganci, in particolare temp-buffer-setup-hook
. Per utilizzare questo, si deve aggiungere una funzione al gancio in questo modo
(add-hook 'temp-buffer-setup-hook 'my-func-to-set-minor-mode)
La mia domanda è duplice:
- C'è un modo più semplice per fare questo, simile alle principali impostazioni?
- In caso contrario, come si scrive la funzione per il gancio?
- È necessario controllare il percorso del file rispetto a un'espressione regolare.
- Se corrisponde, attivare la modalità desiderata (ad esempio
auto-fill-mode
).
debole e buggy tentativo di soluzione:
; 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))))
Quando si guarda a 'Ch v auto-mode-alist', le estensioni sono di solito realizzate come' "\\ note \\ '" ' . Vedi l'ultima * singola * citazione. –
Sarò dannato. Mi è mancato quando stavo facendo il tipo. Probabilmente spiega esattamente la trailing backdown thing -_- –