outputz – outputz interface for Vim : vim onlineというvimプラグインを利用すると,保存時にvimの編集文字数をpostしてくれるんだけど,これが,Kaoriyaで配布されてるcurl.exeを使ってwindows環境から送信しようとするとうまくいかない.どうやらLinuxとWinでは引数が違うみたい?curlの差かもしれない.
解決方法はすでに以下のサイトにあるように,–form-stringを-Fにする.
果てしなくぞんざいな日記: Windows版VimでOutputzプラグインを使う。
でもこれをやっちゃうと今度はLinuxの方で動かなくなるので,以下のような感じで分岐するようにした.autoload/outputz.vimのs:sendですね.
function! s:send(n)
if !exists('g:outputz_secret_key')
echoerr 'g:outputz_secret_key is not defined'
return
endif
if has('win32')
silent! execute printf('!curl -F key=%s -F uri=%s -F "size=%d" http://outputz.com/api/post',
fnameescape(g:outputz_secret_key),
fnameescape({g:outputz_uri_function}()),
a:n)
else
silent! execute printf('!curl --form-string key=%s --form-string uri=%s --form-string "size=%d" http://outputz.com/api/post',
fnameescape(g:outputz_secret_key),
fnameescape({g:outputz_uri_function}()),
a:n)
endif
endfunction
あと,URLにvimのfaviconが出したかったので以下のように書いてみたけど,faviconが表示されるのは,対象のサイトのルートにfavicon.icoがある時だけみたいで,faviconのファイル名が違うvim.orgはダメらしい.(あとこれ関数直接書きかえずにうまくやる方法があるっぽい?)
function! outputz#default_uri_function() "{{{2
return 'http://www.vim.org/' . &l:filetype
endfunction
自分はVimperatorかIRCかvimしか使わないから,これで入力のすべてをカバーできるようになった.やっぱりコードは結構かいてるので,outputz.vimを入れてから原稿用紙20枚くらいはあっというまにいってしまう.
いやー,Outputzほんとに楽しいです.