Хук расширения файла в Emacs - PullRequest
17 голосов
/ 31 июля 2011

Я хотел бы запустить ловушку для определенных расширений файлов (т.е. не для режимов). У меня нулевой опыт работы с elisp, поэтому я добавил код груза:

(defun set_tab_mode ()
    (when (looking-at-p "\\.cat")
    (insert "OK")
    (orgtbl-mode)))

(add-hook 'find-file-hook 'set_tab_mode)

(следует установить второстепенный режим orgtbl для файлов с суффиксом .cat и вставить текст «ОК», т. Е. Это не только вопрос настройки режима). К сожалению, это не работает.

Ответы [ 2 ]

23 голосов
/ 31 июля 2011

Вы можете использовать лямбду в auto-mode-alist:

(add-to-list 'auto-mode-alist
             '("\\.cat\\'" . (lambda ()
                               ;; add major mode setting here, if needed, for example:
                               ;; (text-mode)
                               (insert "OK")
                               (turn-on-orgtbl))))
19 голосов
/ 31 июля 2011

Попробуйте это:

(defun my-set-tab-mode ()
  (when (and (stringp buffer-file-name)
             (string-match "\\.cat\\'" buffer-file-name))
    (insert "OK")
    (orgtbl-mode)))

(add-hook 'find-file-hook 'my-set-tab-mode)
...