インストール
- gitのインストール
- vimのインストール
- neobundleの導入
- 取得
- > git clone git://github.com/Shougo/neobundle.vim ~/vimfiles/bundle/neobundle.vim
- ~/_vimrcの編集
- vim起動
- :NeoBundleInstall
- riv.vimのインストール
- neobundleを使ってインストール。vimrcに追加するだけ。
- Pythonのインストール
- Docutilsをインストール
- Pygmentsをインストール
※Pythonのeasy_installが利用できるなら、
> easy_install docutils
> easy_install pygments
でよい。
~/_vimrcには、以下を追記する。
なお、gitコマンドが、なぜか環境変数のPathに追加するだけでは、vimから実行できなかったため、ここでPathに追加している。
ポータブル版にした影響か?
let $PATH = $PATH . ';$GIT_HOME\bin'
set nocompatible
filetype off
if has('vim_starting')
set runtimepath+=~/vimfiles/bundle/neobundle.vim/
endif
call neobundle#rc(expand('~/vimfiles/bundle/'))
NeoBundle 'Shougo/neobundle.vim'
NeoBundle 'Rykka/riv.vim'
filetype plugin on
filetype indent on
プレビューの利用
riv.vimでは、Docutilsを利用して、htmlに変換後、ブラウザで表示する機能が用意されている。
が、Windows7上に構築したこの環境では、エラーになり、うまく行かなかった。
どうやら、Docutils(rst2html.py)でhtmlに変換するところでエラーになっている様子。
とりあえず、以下のように修正することで、なんとか動くようになった。
修正ファイル
~\vimfiles\bundle\riv.vim\autoload\riv\publish.vim
修正前↓(171-173行)
call s:sys( exe." ". style ." ". args ." "
\.shellescape(input)
\." > ".shellescape(output) )
修正後↓
call s:sys( exe." ". style ." ". args ." "
\.shellescape(input)
\." ".shellescape(output) )
さらに、ブラウザ呼び出し部分でもエラーになったので、そこも合わせて修正。
修正前↓(248-250行目)
else
call s:sys(g:riv_web_browser . ' '. shellescape(out_file) . ' &')
endif
修正後↓
else
call s:sys(g:riv_web_browser . ' '. shellescape(out_file) )
endif
最後に、riv.vimのdefaultの表示用ブラウザが、Firefoxになっているので、Chromeに変更するため、_vimrcファイルに追加する。
"---------------------------------------------------------------------------
" riv
let g:riv_fold_level = 1
let g:riv_web_browser = '"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"'
let g:riv_temp_path = 0
let g:riv_html_code_hl_style = "friendly"
ついでに、ちょこちょこと設定している。
あとは、
:Riv2HtmlAndBrowse
とすれば、編集中のreSTファイルをブラウザでプレビューすることができる。
なお、riv.vimを利用しなくても、Docutilsを利用して、htmlに変換しブラウザで表示するような関数を定義してやれば、プレビューは可能。
例えば、
~\vimfiles\bundle\riv.vim\ftplugin\rst\riv.vim
に、以下のようにすれば良い。
(引用元:http://www.hexacosa.net/blog/detail/41/)
python << EOF
from docutils.core import publish_file
import os
import tempfile
import time
import webbrowser
import vim
def Rst2Web():
src_fo = open(vim.current.buffer.name)
dst = tempfile.mkstemp(suffix='.html')
dst_fo = os.fdopen(dst[0], 'w')
dst_filename = dst[1]
print dst_filename
out = publish_file(src_fo, '.', dst_fo, '.', writer_name='html')
webbrowser.open(dst_filename)
time.sleep(3)
os.remove(dst_filename)
EOF
ca rst2web :py Rst2Web()
この場合は、実行時に
:rst2web
とすれば良い。