*!! Polymode required Emacs version 25.1 or higher!!* ## Via package.el Polymode is available on the two major `package.el` community maintained repos - [MELPA Stable](http://stable.melpa.org) and [MELPA](http://melpa.org). You can install Polymode, or more commonly a specific polymode, interactively M-x package-install [RET] polymode [RET] M-x package-install [RET] poly-markdown [RET]
... In order to see all available polymodes do M-x list-packages [RET] and search for `poly-` prefix. To automatically install relevant polymodes put the following lines into `.emacs` for each polymode that you use: ```el (unless (package-installed-p 'polymode) (package-install 'poly-markdown)) ``` You can pin packages to always install from MELPA stable like follows: ```el (add-to-list 'package-pinned-packages '(poly-markdown . "melpa-stable") t) ``` ## Via use-package `use-package` can also be used to install Polymode via the `package.el`. ```el (use-package poly-markdown :ensure t) ``` Or from MELPA stable: ```el (use-package poly-markdown :ensure t :pin melpa-stable) ``` For further configuration options with `use-package` see the official [use-package repository](https://github.com/jwiegley/use-package) or C-h v use-package [RET]. ## Manually ```sh cd path/to/vc/dir git clone https://github.com/polymode/polymode git clone https://github.com/polymode/poly-markdown ... ``` In `.emacs` add "polymode" directory and "polymode/modes" to the load path: ```el (setq load-path (append '("path/to/vc/dir/polymode/" "path/to/vc/dir/poly-markdown/") load-path)) ``` Require any polymode bundles that you are interested in. For example: ```el (require 'poly-markdown) ``` ## Activation of Polymodes Polymodes are functions and can be used just like ordinary emacs modes. Particularly, activate them in files by either registering a file extension in `auto-mode-alist` ```el (add-to-list 'auto-mode-alist '("\\.md" . poly-markdown-mode)) ``` or by setting local major mode variable in the header of the file: ```nw // -*- mode: poly-noweb -*- ``` Normally you won't need to setup modes yourself as polymode packages register their polymodes with the common extensions automatically. See the documentation of each polymode package.