Vim から rst ファイルをビルドする

Sphinx を使ってドキュメントを書く時は Vim で rst を書いて、シェルに戻り make html をやっていた。
この Vim からシェルに戻るという行為が煩わしくなってきたので、Vim で完結できないかと試行錯誤してた。


ディレクトリ構成はこんな感じ。
index.rst を開いているという仮定で、前提として Vim で index.rst を開いたら自動で index.rst の階層に移動するという設定をしている。

$ tree -L 2
.
├── Makefile
├── make.bat
└── source
    ├── _static
    ├── _templates
    ├── _themes
    ├── conf.py
    └── index.rst

まず :make を使えば make コマンドが実行できるのでこれで出来ないかとやってみた。

:make -f ../Makefile html
sphinx-build -b html -d build/doctrees   source build/html
Error: Cannot find source directory.
make: *** [html] Error 1

source ディレクトリが見つからないというもの。


Makefile を中身を見たけど読み方が良くわからないので、QuickRun.vim を使った。

let g:quickrun_config['rst'] = {'command': 'sphinx-build', 'cmdopt': '-b html -d ../build/doctrees ../source ../build/html'}

これで QuickRun.vim を実行すると無事にビルドできた。
ただしこの設定は rst ファイルが sources の下に無いと動かないけど、自分はこの構成で作る事が多いので、特に問題なさそう。
# 良い方法ないかな…。