Humanity

Edit the world by your favorite way

openbrowser.vimの問題とかTODOとか

眠くて今日はもうコード書けないので整理するためにエントリにしてみる。


現在openbrowser.vimにはブラウザの終了までブロックしてしまう致命的な問題がある。

この挙動に気付くのが遅れた理由は
だいたい自分がFirefoxを起動しっぱなしにしてて、
かつUbuntuでは/usr/bin/firefoxシェルスクリプトへの
シンボリックリンクであることが多く、
そのシェルスクリプトfirefoxが起動していたら
URIfirefoxに送ってexitする、つまりブロッキングしないから。

なぜバックグラウンドで開くようにしてなかったかというと
終了ステータスを取得して、0(成功)だったらそこでループから抜け出すため。
ループはブラウザに限らずgnome-openとか
Windowsだったらexplorerとかいろんなもので開いてみて
成功だったらbreakするみたいな適当な感じになってる。

解決策

  • vimproc使う
    • ライブラリが必須になるのはjoltができてない今避けたい
  • バックグラウンドで開く
    • ループ使わない。成功したかどうかなんぞ知るか
  • 引数によって、パスっぽかったらファイルブラウザ、URIだったらWebブラウザを開くように分岐する

3番目今思い付いた。
vimproc使えばいいかなーと思って思い付かなかった。
ちょっとオプション変数とか互換性なくなっちゃうかも
しれないけどそれが一番いい感じかもしれない。