package-install可能なmodeの調査
M-x package-list-package
でElixir関係のmodeをしらべてみると
- elixir-mode
- alchemist
- flymake-elixir
- elixir-mix
- ob-elixir
などが見つかる。
elixir-modeはElixir用のメジャモード。
alchemistはemacs上でコード補完を行ったり、指定したリージョンを実行したりする機能を追加するモード。
flymake-elixirは、名前からしておそらく構文チェッカー。
elixir-mixとob-elixirは, それぞれmixとiexをemacsから呼び出すためのラッパーのようである。
alchemistが多機能で便利らしいので、とりあえずelixir-modeとalchemistをインストールすることにする。
elixir-mode
M-x package-install [RET] elixir-mode [RET]
あとは, init.elでmodeを読み込むようにする。
(require 'elixir-mode)
init.elをリロード後、試しにexファイルを開いてみて
メジャモードとしてElixirが選択されていればOK.
alchemistのインストール
[Githubの説明] (https://github.com/tonini/alchemist.el)を参考にインストール
M-x package-install [RET] alchemist [RET]
すると、
Package `emacs-24.4' is unavailable
と表示されて失敗。どうやら、emacsの24.4以降が必要なようだ。
Cent7のyumでemacsをインストールした場合、24.3がインストールされてしまうので、
[こちらのサイト] (http://akiki2starlet.blog.fc2.com/blog-entry-4.html)を参考に24.4をインストールする。
emacs24.4.1をインストールしたりGitのバージョンを上げたりした(magitを入れ直した際に要求された)、散々寄り道した末、ようやくpackage-install成功。
(require 'alchemist)
と設定ファイルに追加して、exファイルを開くと…
無事導入完了。
alchemistにはphoenix用のモードも含まれていたらしく、alchemist-phoenixというモードも有効になっている。
ついでに、コード補完をauto-completeに変更するac-alchemistも導入することにする。
M-x package-install [RET] ac-alchemist [RET]
とpackage-installして, init.elに以下を追加
(add-hook 'elixir-mode-hook 'ac-alchemist-setup)
すると
と無事auto-completeが有効になりました。
最後に
今回はpackage-installを使ってインストールを行いましたがEl-getにも対応しているようなので
複数環境でinit.elを使いまわしたい場合は、そちらを使って定義したほうが良いと思われます。
参考サイト
EmacsでElixirのコードを書いて、IExで即座に実行 : http://qiita.com/__hage/items/577c0dba7bab9ec4f3a1
Elixir の Emacs でのコード補完を auto-complete : http://qiita.com/naoya@github/items/8d6856c64a2e3b9fa208
CentOS6.6 に Emacs24.4 : http://akiki2starlet.blog.fc2.com/blog-entry-4.html