- polymode 20170307.322(in MELPA)
- Versatile multiple modes with extensive literate programming support
概要
1つのバッファに複数の言語のテキストを含ませることがあります。
たとえば、org-modeやmarkdown-modeでのコードブロック、
PHP/ERBなどのWeb関係のテキストなどです。
polymode.el はバッファ内の『言語』を瞬時に判別し、
カーソル位置によって適切なメジャーモードに切り替えます。
org-modeでC-c 'を使わずにモードを切り替えてくれるのは便利です。
以下のモードに対応していて、現在はWeb関係には対応していません。
Webのテンプレートを編集するにはweb-mode.el(レビュー) があります。
- org-mode
- markdown-mode
- R言語
- Noweb for R (*.Snw, *.Rnw)
- markdown+R (*.Rmd)
- HTML KnitR (*.Rhtml)
- Brew (*.Rbrew)
- Ess help
- Rd
- rapport (*.rapport)
- R C++ (*.Rcpp, *.cppR)
- Noweb for R (*.Snw, *.Rnw)
メジャーモードの切り替え方式はmmm-modeとは違い、
multi-mode.el のように間接バッファを用意し、
post-command-hookで切り替えています。
そのため切り替えは瞬時に終わり、動作は軽いです。
polymode自体EIEIOのオブジェクト指向で書かれているため、
他のモードにも対応させられます。
Fig1: ソースブロックの外ではorg-mode
Fig2: ソースブロックのメジャーモードに変わる!
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてpolymodeを使う方は
以下のコマンドを実行します。
M-x package-install polymode
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name polymode
設定 150526080511.polymode.1.el(以下のコードと同一)
(require 'polymode-configuration)
実行方法
$ wget http://rubikitch.com/f/150526080511.polymode.1.el $ emacs -Q -f package-initialize -l 150526080511.polymode.1.el
本サイト内の関連パッケージ
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。