VimからRubyを呼び出して電卓代わりにする
Vim上で計算をしたいけど
電卓を立ち上げるのが面倒くさい。
4+2=
というテキストがあったら、数式とみなして
4+2=6
となってほしい。
#!/usr/bin/ruby -Ks body = $stdin.read body.each_line{|line| line.chomp! line.gsub!(/=(.*)/,"") if line.length > 0 print "#{line}=" ans = eval line if line.match(/0x/) printf "0x%x",ans elsif line.match(/0b/) printf "0b%b",ans else print "#{ans}" end end print "\n" }
VimのVisualモードで
4+2=
4-2=
4*2=
4%2=
0x48+0x72=
を選択して
:'<,'>!ruby c:\tools\vim74-kaoriya-win64\calc.rb
をすると
4+2=6
4-2=2
4*2=8
4%2=0
0x48+0x72=0xba
となり、電卓要らず。
Vim単体でも: C-r = 4 + 2 で計算できるけど
これだと複数の計算も一気にできて便利。
しくみ。
Visualモードで選択した行が、calc.rbの
標準入力に入るのでevalして結果を標準出力するだけ。
シンプルな仕組みなので、ほかにもいろいろできそう。