Search code examples
emacselisp

File extension hook in Emacs


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.


Solution

  • 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)