vimtwitter.vimでラクラク書き込み

vimから twitterに書き込みvimスクリプト、ありますねー。
いいっすねー。

ダウンロード

http://www.vim.org/scripts/script.php?script_id=2124


最新のスクリプトを取得しました。
script version : 5.0
date : 2008-03-28
Vim version : 7.0

基本設定

runtimepathの通ったディレクトリに vimtwitter.vimを配置。
.vimrcに、let vimtwitter_login="USER:PASS"の形式で
ユーザ名、パスワードを記述。
(直書きっていうのがアレだけど、目をつぶって、と)


自分の twitterアカウントは kei_os なので

let vimtwitter_login="kei_os:PASS"

これで動かす

vimを起動して、テキストを書いたあとに
twitterに送りたいテキストをビジュアルモードで選択しておいて
T を押すと、twitterに書き込める、はず、
なのだけど、書き込めなかった><


書き込んだよ!って感じのメッセージが出るものの
twitterにアップデートされないので、調査。


vimtwitter.vimの、function! s:post_twitter(mesg)関数をみると
system() で curlを呼び出して書き込んでいるのだけど
(なるほど、なんかパターンが見えてきたぞ、と)
system() の戻り値を確認してみることにした。

"   call system("curl ".s:proxy." ".s:login.' -d status="'.mesg.'" '.s:twupdate)
    let l:ret = system("curl ".s:proxy." ".s:login.' -d status="'.mesg.'" '.s:twupdate)
    echo "Your tweet was sent. You used" strlen(mesg) "characters."
    echo "--------\n"
    echo l:ret


そしたら、やっぱ、zshが no matches found ってことで
書き込めてないよ、って言ってた。

Your tweet was sent. You used 33 characters.
              • -
zsh: no matches found: http://twitter.com/statuses/update.xml?source=vim

というわけで、もいっちょ設定


curlに渡しているURLに含まれる ? がくせもの、という指摘。
薫のhack - ブログ検索 - twitter


たしかに、自分の現象と一致します。
とゆーわけで、もともとの

let s:twupdate = "http://twitter.com/statuses/update.xml?source=vim"


ってあったのを

let s:twupdate = "'http://twitter.com/statuses/update.xml?source=vim'"


に変更し、再度、twitter書き込みテスト。
うまくいきました〜。


しかしこんなに簡単に書き込めてしまうのも
ちょっと怖いなぁ、ということで
あとで vmapの設定を変えよう、っと。