>>>>> "Chris" == Chris Withers <[EMAIL PROTECTED]> writes:
> Well, is there any way I can easily tell emacs: > - If a file starts with <html> or <!DOCTYPE, then go into > html-mode > - If a file starts with #, then go into python mode? Asking "is it possibile in Emacs..." ? You are joking! I did my last lisp programming 10 years ago, but thanks to the power of (e)lisp and the wonderful documentation of Emacs I came up with the following stuff, that you can put in your init file (.emacs) ;;; hook to change a buffer mode depending on the first buffer's chars. (defun foo () "foo fun" (interactive "") ; so you can do M-x foo to test it (save-excursion ; come back to current point after execution (goto-char 0) ; go to buffer start (cond ((looking-at "##") ; are we matching pattern ? (python-mode)) ; set mode! ((looking-at "<html>") (html-mode))))) (remove-hook 'find-file-hooks 'foo) ; remove old hook (if any) (add-hook 'find-file-hooks 'foo t) ; install this one (at the end) It works like this: 1) whenever Emacs loads a file, it calls (at the end) the functions listed (registered) in find-file-hooks, 2) we register (add-hook) our function (foo) at the end (last param) of that list, 3) foo is defined with defun ..., it has no params (()), its doc string is "foo fun", and can be called interactively (not really needed), 4) foo is very simple, "cond" is the lisp version of a "case", looking-at returns true if text after point matches regular the given regexp adn in that case, "cond" evaluate the expression that follows. That's all. It is really an hack, but it works for simple cases. If you need something "a little" more elaborate let me know. For a "real solution" aks the same question on some emacs newsgroups. Regards, Luca. _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )