vimをtwitterクライアントにするプラグインtwitvimを試してみた
vimをtwitterクライアントに出来るプラグインを見つけたので試してみました。
TwitVim - Twitter client for Vim : vim online
インストール
上記サイトからvbaファイルをダウンロード後、
$ vim twitvim.vba
:source %
と打てば、$VIMHOME/plugin, docディレクトリにそれぞれファイルが展開されます。
しかし展開されるファイル名が自分の環境だと変なことになってたのでリネームしました。
$ mv .vim/plugin/twitvim.vim?[[[1 .vim/plugin/twitvim.vim $ mv .vim/doc/twitvim.txt?[[[1 .vim/doc/twitvim.txt
あとは.vimrcにユーザ名とパスワードを書けばインストは完了です。
let twitvim_login = "USER:PASS"
使い方
- Update系コマンド
コマンド名 | 用途 |
---|---|
:PosttoTwitter | メッセージを普通にポスト |
:CPosttoTwitter | 参照しているバッファの行ごとポスト |
:BPosttoTwitter | 参照しているバッファごとポスト |
- 参照系コマンド
:UserTwitter | 自分のタイムラインを取得 |
:FriendsTwitter | 自分+followerのタイムラインを取得 |
:RepliesTwitter | replyを取得 |
:PublicTwitter | public timelineを取得 |
:DMTwitter | ダイレクトメッセージを取得 |
基本は上のコマンド。あとUtility Commandとして下の5サイトもコマンドから使えるみたいです。
問題点
Updateコマンドでポストした日本語が文字化けします。
原因はupdateのAPIに渡すパラメータをUTF-8でURLエンコードする処理が怪しいと思うんですが、vimスクリプトよくわからない>< 教えてエロい人!
- twitvim.vim 188〜191行目あたりが怪しい?
" URL-encode a string. function! s:url_encode(str) return substitute(a:str, '[^a-zA-Z_-]', '\=printf("%%%02X, char2nr(submatch(0)))', 'g') endfunction
明らかに英文字しかパターンマッチさせてないので、下のように変えてみたけどダメでした。
substitute(a:str, '.', '\=printf("%%%02X, char2nr(submatch(0)))', 'g')