素人の備忘録。
ガチの素人が試行錯誤しただけなので変なところだらけだと思います。
動機
VimでMarkdownのプレビューにPrevimを使っている。
普通なら、:PrevimOpen
で編集中のMarkdownのプレビューがブラウザで開く。
Bash on Ubuntu on WindowsでもVimを使えるようにしたが、Previmがうまくいかない。
前提
wsl-terminalを使用しているので、cbwinが使える。
参考:
Bash on Ubuntu on Windows + オールインワンmintty
Bash on Ubuntu on Windowsからcmd / startを使う
wstart
を使えば、UbuntuからWindowsのhtmlファイルをWindowsのブラウザで開くことはできる。
#cd /mnt/c/Users/user/Documents
# wstart test.html
ところが、Ubuntuの$HOME
以下にあるhtmlファイルをWindowsのブラウザで開くことができない。
#cd ~/Documents
# wstart test.html
The system cannot find the file test.html
Previmはプレビュー用のhtmlファイルを作成し、g:previm_open_cmd
で指定したコマンドで開いているらしい。wstart
を指定すればいいかと安易に考えていたが、上記のとおり開くことができない。
解決策
試行錯誤してみたところ、windowsのフルパスをwstart
すれば、Windowsのブラウザで開けることがわかった。
# wstart C:/Users/user/AppData/Local/lxss/home/user/Documents/test.html
つまり、引数のファイルについてWindowsのフルパスを取得しwstart
するシェルスクリプトを作り、それをg:previm_open_cmd
に指定すればいいはず。
ということで~/mytools
に以下のシェルスクリプトを作成。
参考:bash で ファイルの絶対パスを得る
#!/bin/bashwindir='C:/Users/user/AppData/Local/lxss'BoWpath=$(readlink -f $1)
wstart $windir$BoWpath
作成したシェルスクリプトに実行権限を与える。
参考:○○.shを./○○.shで実行できるようにする
# sudo chmod +x starthtmlinwin.sh
~/mytools
にパスを通す。
exportPATH=$PATH:$HOME/mytool
g:previm_open_cmd
を設定(ついでにリアルタイムプレビューも設定)。
" htmlを開くコマンドを指定letg:previm_open_cmd="starthtmlinwin.sh"" リアルタイムプレビュー有効letg:previm_enable_realtime=1
無事:PrevimOpen
でプレビューがWindowsのブラウザで開いた。
リアルタイムプレビューもうまく動いているようだ。
どうせ素人なのでWindowsのVimを使えばいいのではないかという気がしなくもないが…