Reputation: 2120
I'd like to run a hook for specific file extensions (i.e. not modes). I have zero experience with elisp, so I cargo-cult coded this:
(defun set_tab_mode ()
(when (looking-at-p "\\.cat")
(insert "OK")
(orgtbl-mode)))
(add-hook 'find-file-hook 'set_tab_mode)
(Should set orgtbl minor mode for files with suffix .cat and insert text "OK", i.e. it's not only a mode setting question). Unfortunately it does not work.
Upvotes: 21
Views: 7269
Reputation: 12225
You can use lambda in 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))))
Upvotes: 28
Reputation: 4109
Try this:
(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)
Upvotes: 21