search
LoginSignup
8

More than 3 years have passed since last update.

posted at

updated at

WSL の Ubuntu 18.04 で OCaml 開発環境を作る

はじめに

Windows Subsystem for Linux の Ubuntu 18.04 で OCaml 開発環境を作りました。難しいことは何もありません。Windows での OCaml 開発環境がアレだったのはひと昔、今や WSL でサクッと快適な OCaml 開発環境が作れます。

手順

Microsoft Store で Ubuntu 18.04(無料) をインストールします。

その後 Linux 上で次のように実行します。質問にはてきとうに y と答えましょう。それぞれ時間がかかりますので、時間があるときにやりましょう。

bash
$ sudo apt update
$ sudo apt install emacs m4 opam
$ opam init
$ opam install tuareg ocp-indent utop merlin user-setup
$ opam user-setup install
$ eval `opam config env`

最後の eval `opam config env` は環境変数がクリアされる毎に実行する必要があります。面倒な方は .bashrc なりなんなりに書くといいと思います。

基本的にはこれで終わりです。

何を入れさせられているのか不安かもしれませんので、明示的に入れたものを軽く説明しておきます。

名前 説明
emacs 言わずと知れたエディタです。vim は Ubuntu18.04 に最初から入ってます。
m4 テキストマクロプロセッサです。直接使うことはあまりないと思いますが、これを入れないで opam init しようとすると、「多くのパッケージが m4 に依存するから入れた方がいいよ」と言われます。
opam OCaml 用パッケージマネージャです。
tuareg emacs 用の OCaml major-mode です。
ocp-indent emacs/vim 用の OCaml インデンタです。 tuareg と共存できます。
utop ocaml コマンド単独よりも賢い repl を提供してくれます。
merlin OCaml 用のコード補完ツールです。
user-setup tuareg, ocp-indent, utop, merlin 用の設定を .emacs や .vimrc に書き込んでくれる。

もう少し便利にする

コード補完

emacs

実は既に設定は済んでいます。

test.ml
let () =
  print_

として、 print_ の末尾にカーソルを合わせてから、 M-x completion-at-point もしくは M-x co-at とすると、補完ができます。

co-at.png

Frame が分割されてダサいと思われる方は company を入れると良いと思います。emacs で M-x list-packages とするとメニューが出てくるので、そこで company を install して、 emacs を再起動しましょう。いい感じになります。

company.png

company では print_ とタイプして少し間をおくと自動的に補完メニューが出てきます。

vim

実は既に設定は済んでいます。

test.ml
let () =
  print_

として、 print_ の末尾にカーソルを合わせてから、挿入モードで Ctrl-X Ctrl-O とすると、補完メニューが出ます。

vim.png

jbuilder と .merlin

.merlin、めんどくさいですよね。昨今はビルドシステムの dune(jbuilder) さんが自動的に作ってくれます。何かの依存関係の関係でインストールも終わっていると思います。

とりあえず例ですが、まず test.ml というファイルだけのプログラムの場合、同じディレクトリに次の様な内容の jbuild という名前のファイルを作ります。

jbuild
(jbuild_version 1)

(executable
 ((name test)))

そして次のようにするとビルドできます。

$ jbuilder build test.exe

このとき .merlin まで自動で作ってくれます。

細かいところは本家documentationKeigo Imaiさんの記事を見ると良いと思います。

emacs を X Window で使いたい

Windows用 X Server はいくつかありますが、私は VcXsrv というのを入れました。Windows 側で VcXsrv を install して、立ち上げてから Linux 側で

$ emacs --display=localhost:0.0

もしくは

$ DISPLAY=localhost:0.0 emacs

とすると X Window で emacs を実行できます。

おわりに

というわけで Windows でも OCaml 開発環境が簡単に作れるようになりました。便利な世の中になりましたね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8