読者です 読者をやめる 読者になる 読者になる

VimでGoogleの電卓機能を使うプラグインGCalc.vim書いた

Google Suggest APIで電卓もどき - ほとんど欄外RubyからVimScriptに移植した風なもの。

scriptencoding utf-8
function! GCalc(...)
  let word = a:1 

  let res = webapi#http#get('http://www.google.co.jp/complete/search?output=toolbar&q='.webapi#http#escape(word)).content

  if match(res, 'calculator_suggestion') == -1
    echohl ErrorMsg | echo '答えが出せませんでした' |  echohl None
    return
  endif

  let dom = webapi#xml#parse(res)
  echo dom.find('calculator_suggestion').attr['data']
endfunction

command! -nargs=+ GCalc call GCalc(<q-args>)

動かすにはmattnさんのwebapi-vimが必要。というかこのプラグインの95%位はwebapi-vimのおかげなんじゃないだろうか。
mattn/webapi-vim · GitHub

使い方例

:GCalc 1+1
2
:GCalc 13 km in yard
14216.9729 yard
:GCalc 0x10 in decimal
16
:GCalc answer to life the universe and everything
42

注意点としては「1kmをマイルで」とか「e^(π*i)」みたいにマルチバイト文字が入ってくる場合、GoogleAPIが計算結果を返してくれないので計算できない。他には為替計算とかも同様の理由で無理のようだ。だがそれ以外は虚数計算指数関数なんでもござれ。

:GCalc e^(pi*i)
-1
:GCalc log(1024)
3.01029996
:GCalc cosh(12)
81377.3957

単位換算とか進法の変換とかが便利かも


補記:
Googleの電卓機能についてはこのページが役立つかも
google電卓リファレンス


追記2010-12-13:
続き
GCalc.vimに超絶簡易補完機能を追加した - ほとんど欄外


追追記2011-04-10:
思うところあって名称変更。GoogleCalc.vimからGCalc.vim


補記2012-05-05:
GitHubに移した
tasuten/gcalc.vim · GitHub

当ブログに於いて、私tasutenによって創作されたことが自明である著作物に対しては、別途明示のある場合を除き全てCC0が適用されます。