|library||elisp files||size||last update||url|
Actively maintained by François-Xavier Bois.
Polymode is a framework for multiple major modes (MMM) inside a single Emacs buffer. It is fast and has a simple but flexible object oriented design. Creating new polymodes normally takes a few lines of code.
Polymode also provides configurable facilities for literate programming - exporters, weavers and tanglers.
Multi Mode is an implementation of the approach referred to in Emacs’ TODO. It probably only works in Emacs 21 and later.
- I have been using it with Emacs 23 with no issue. It also has 2009 in its copyright notice, so it seems like it is still being updated.
See also its uses in noweb.el and haskell-latex.el in the same directory.
See EmacsLispAndLaTeX for an example.
Does two-mode-mode run on Emacs 23? I have tested it and it doesn’t change between modes.
I got it to work by changing the following:
- (if (string= to-mode mode-name) + (if (string= to-mode major-mode)
Seems to need the following in emacs 24 since make-local hook has been removed:
- (make-local-hook 'post-command-hook)
This is a built-in feature in Emacs. Indirect buffers feature does not exactly give multiple major modes in the same logical buffer but it gives user two (or more) different buffers which have their textual content linked together. To clone a buffer use
‘C-x 4 c’ and then use different major modes in the clones. See the Emacs reference manual for more information about indirect buffers. See also IndirectBuffers.
Library narrow-indirect.el facilitates creating indirect buffers cloned and narrowed from other buffers. And yes, you can use different major modes in them, even fontifying them differently etc. See NarrowIndirect.
What a shame that there are multiple multiple mode modes. As soon as you need mode X that requires multiple mode M1, while already using another mode which uses multiple mode M2, you’re loading far more than you need to. Just because TIMTOWTDI (sorry for the perl-ism) doesn’t mean you must do it more than one way.