Vimから自分のはてブのブックマークを覗くプラグインを書いた
タイトル通り。またしてもVimネタ。色々アイデアが出て作り貯めていたので。予め言い訳しておくと完成度はアレだと思われ
scriptencoding utf-8 let s:hatena_id = exists('g:hatena_user') ? g:hatena_user : 'your-hatena-id' function! HatebuView(...) let tag = a:0 > 0 ? a:1 : '' " a:0は引数の数 let res = webapi#http#get('http://b.hatena.ne.jp/'.s:hatena_id.'/atomfeed?tag='.webapi#http#escape(tag)) let dom = webapi#xml#parse(res.content) if match(dom.find('title').value(), tag.' (0)') != -1 echohl ErrorMsg echo 'タグ['.tag.']が付いているブックマークはありません' echohl None return endif let tmp_file_name = '[Hatebu View]' let line_list = (tag == '') ? ['ブックマーク一覧', ''] : ['['.tag.']タグの付いたブックマーク一覧', ''] for item in dom.findAll('entry') let title = item.find('title').value() let uri = item.find('link').attr['href'] call extend(line_list, [title, uri, '']) endfor call writefile(line_list, tmp_file_name) execute 'vnew '. tmp_file_name setlocal noswapfile nobuflisted buftype=nowrite call system('rm -rf "'.tmp_file_name.'"') endfunction command! -nargs=? HatebuView call HatebuView(<q-args>)
はてなのユーザIDは、hatena.vimを使っていてg:hatena_userを.vimrcなんかで設定してる人はそれを使う。そうじゃない人は
let g:hatena_user='はてなのユーザID'
を.vimrcに追加するか、上のVimscriptの3行目のyour-hatena-idを自分のIDに書き換えるかしてください。
使用に関して、前のGoogleCalc.vim(http://d.hatena.ne.jp/tasuten/20101209/1291831256)と同じくwebapi-vim(https://github.com/mattn/webapi-vim)を使ってる故未インストールの方はwebapi-vimも要インストール。
で、使い方は
:HatebuView {tag}
{tag}が指定された場合はそのタグがついたブックマークの、指定されていなければ全てのブックマークの直近20件の一覧をこんな風に画面を分割して表示する
左側のファイル名がアレだが大丈夫だ、問題ない。
ちなみにここでopen-browser.vim(http://d.hatena.ne.jp/tyru/20100619/git_push_vim_plugins_to_github)やutl.vim(http://www.vim.org/scripts/script.php?script_id=293)のようにURLな文字列をブラウザでほげほげできるようなプラグインがあれば、URLにカーソルを合わせてふがふがすればブラウザでそのページに飛べるわけだ。
注意点として、:HatebuView {tag}しても時々暫くたっても反応が無い時があるけど、そういう時はCtrl-cでコマンドを中断してあげるのがいいかも。多分はてなのAPIかサーバーが×××な状態になっているんじゃないだろうか。責任転嫁ジャナイヨー俺ノ所為ジャナイヨー
以下参考にしたページ
Big Sky :: favstar.vim書いた。
はてなブックマークフィード仕様とは - はてなキーワード