hatena.vim うまくいった!
4月20日のエントリー
hatena.vim導入しよう (1) - kei-os2007 against the machine!!
で、うまくいかない、って書いていた hatena.vimの件だけど
今日やってみて、うまくいった。
hatena.vimのバージョンとか
うまくいかない状況を、もっときちんと記しておけばよかったな、
と少し反省...。
とりあえず、今日の作業内容、解決に至った手順を書いておきます。
1. curlのビルドオプションを確認 (OpenSSL)
「curlに OpenSSLがリンクされていないと、うまくいかない」
という情報を id:from_kyushuさんからいただいたので
curlのバージョンを確認しつつ、解決をはかった。
ご自身のブログでも、書かれていた。
hatena.vimを入れてみた - Post-itみたいな
まずは、MacBook Proを購入した時点で入っていた curlということで、確認。
$ /usr/bin/curl -V curl 7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Protocols: tftp ftp telnet dict ldap http file https ftps Features: GSS-Negotiate IPv6 Largefile NTLM SSL libz
OpenSSLはリンクされている様子。
id:from_kyushuさんが書かれている curlバージョンに比べると
若干古かったので、MacPortsで curlを取得。
新しくしてみた。
$ sudo port install curl +ssl
/opt/local/bin/curl に入ったので確認。
$ /opt/local/bin/curl -V curl 7.18.1 (i386-apple-darwin9.2.2) libcurl/7.18.1 OpenSSL/0.9.8g zlib/1.2.3 Protocols: tftp ftp telnet dict http file https ftps Features: Largefile NTLM SSL libz
よし。
2. hatena.vimの挙動を確認
この時点で、バージョン 20070615の hatena.vimを使っていて
function! s:HatenaLogin() の
if reply_header =~ 'Refresh:\c' echo 'ログインしました' return [base_url, user, cookie_file] else echoerr 'ログインに失敗しました' return [] endif
の「ログインに失敗しました」が出るようになっていた。
(4月20日の状況を再現していない><)
reply_headerの内容を確認。
hatena.vimに echoを仕込んで、HTTPレスポンスを確認すると
echo "reply_header = " . reply_header
次のようなレスポンスが返っている。
HTTP/1.1 200 OK Date: Tue, 06 May 2008 12:52:37 GMT Server: Apache/2.2.3 (CentOS) Cache-Control: no-cache Pragma: no-cache X-Framework: Ridge/0.04 Content-Length: 2661 Content-Type: text/html;charset=utf-8 Vary: Accept-Encoding
たしかに Refresh は含まれない。
3. hatena.vimをもう一度取得
hatena.vimを CodeReposから取得。
取得した hatena.vimのバージョンは 20070830。
$ svn co http://svn.coderepos.org/share/lang/vim/hatena
取得した hatenaディレクトリを
$HOME/.vim/hatena に配置。
$HOME/.vimrc には、
set runtimepath+=$HOME/.vim/hatena let g:hatena_user='kei-os2007'
を記述。(.vimrcへの追加は、以前、済ませていた)
4. hatena.vim接続テスト
vimを起動し、コマンドモードで \he をキータイプ。
パスワードを入力し、今日の日付 20080506をセットすると
うまくエントリーができた。
([misc] hatena.vim テスト のエントリーは、hatena.vimで書いた)
念のため、curlのバージョン違いによって
振る舞いに違いが見られないか、確認してみた。
hatena.vimの次の記述を編集して
let s:curl_cmd = 'curl -k --silent'
実行する curlプログラムを
/usr/bin/curl と /opt/local/bin/curl
の 2通りでテストした。
けど、どちらもうまくいった。
(違いは見られなかった)
5. その他
hatena.vimもバージョン毎に
curlのオプションとか、ログイン成功判定処理とか
ちょこちょこと変わっている。
vimスクリプトを一通り勉強すると
vimスクリプトのトラブルに対して、諦めなくなる。
vimスクリプトをおぼえよう - kei-os2007 against the machine!!
でもリンク先を書いたけど
usr_41.txtを一通り読んだら
vimスクリプトへの抵抗が、ずいぶん無くなった。
というか、全くなくなった。
むしろ積極的に手を入れようと自然に思えるようになった。
これはよかった。
あと、4月20日のエントリーを書いたあとに
バージョン 20070615の hatena.vimを使ってみたりしていて
今日、作業を再開した時点で、うまくいかない状況を
完全に再現できなくなっていたのがイタかった...><
せっかく解決のてがかりを教えていただいているのに
その方法が有効か、そうでないかを
明確に示すことができていない。
これはとてももったいない。
GW前にカイシャで試しても同様にうまくいかなかったので
カイシャには 4月20日のエントリーの状況が残っている。
あした出社してから、なぜうまくいかなかったのか
再度、確認してみようと思う。
(ネットワークまわり、OSの違い(Windowsがメイン)とか
気にしないといけないことは、いくつかありそうだけど)