Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vimで電車乗り換えルート検索

$
0
0

こんにちは
ゴリラ.vimを運営しているゴリラです。

Vimでコーディング中に帰りの電車時間を知りたくなる時があるので、プラグイン作りました。
このプラグインを入れればブラウザを開くことなく乗り換えルートを検索できます。便利です。

何ができる?

Yahoo乗り換え案内

電車遅延情報

導入

https://github.com/skanehira/train.vim
READMEを参照して下さい。

使い方

  • 乗り換え
    :TrainSearchRoute 出発駅 到着駅

  • 電車遅延情報
    :TrainLateInfo

仕組み

vital.vimというvimのライブラリのWeb.HTMLを使用してYahoo乗り換え案内のHTMLのパースをしています。

letl:url ='https://transit.yahoo.co.jp/search/result?flatlon=&fromgid=&from='..l:from ..'&tlatlon=&togid=&to='..l:to..'&viacode=&via=&viacode=&via=&viacode=&via=&type=1&ticket=ic&expkind=1&ws=3&s=0&al=1&shin=1&ex=1&hb=1&lb=1&sr=1&kw='..l:toletl:response =s:HTML.parseURL(l:url)" 以降パース処理for ul inl:response.findAll('ul')for li in ul.findAll('li')letdl= li.find('dl')if!empty(dl)let dd =dl.find('dd')if!empty(dd)let ul = dd.find('ul')...

電車遅延情報はAPIがあるので、Web.HTTPを使用してJSONを取得し、vim組み込み関数のjson_decode()でJSONをオブジェクトに変換してテーブルデータを作成しています。

letl:response =s:HTTP.get("https://rti-giken.jp/fhc/api/train_tetsudo/delay.json")ifl:response.status !=200
    echohl ErrorMsg
    echo 'status:'..l:response.status 'response:'..l:response.content
    echohl None
    returnendifletl:table =s:TABLE.new({            \'columns':[{},{},{}],            \'header':['路線名','鉄道','更新時間']            \})letl:content = json_decode(l:response.content)...

vim scriptだけでHTTP通信を行うことはできないので、Webパッケージではcurl or wget or pythonに依存しています。
大抵の環境はcurl使えると思うので、問題ないかと思います。

vital.vimはプラグインを作っていく上でかなり便利なライブラリです。自分も今回始めて使ってみました、割とすんなり使えました。
プラグインを作っていて使ったことが無い方はぜひ一度使ってみてください。便利すぎてやばいです。

最後に

Vimは良いぞ!


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>