103
88

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vim に惚れるシーン(エディタ内で ちょっとした計算をする)

Last updated at Posted at 2015-02-20

シーン 4

今回は小技の紹介です。(「実践 Vim」にまんま載ってたりします...)

文書を書いている途中で、ちょっとした計算をしたいケースって、ありませんか?例えば...

りんごが 15個 あります。3人で仲良く分けると、
650MB のファイルを 1分 でダウンロードした場合の回線速度は、
定価 2,800 円の「実践 Vim」の税込価格は、

こんな場合に、あなたはどうしていますか?

  • 机の中の電卓を出して、計算する。
  • パソコンの電卓アプリを起動して、計算する。
  • スマホの電卓アプリを起動して、計算する。
  • 戸棚の中のそろばんを出して、パチパチ...
  • 暗算!

どうする?

Vim なら、エディタ上で計算できてしまいます。

挿入モードのままで、Ctrl-r = としてやると、計算式が入力できるようになります。試しに「実践 Vim」の税込価格を計算してみましょう。

定価 2,800 円の「実践 Vim」の税込価格は、|

カーソルが | の位置で挿入モードになっているとすると、Ctrl-r = 2800 * 1.08 と入力して Enter キーをおしてみましょう。(最下行に = が表示されて、そこに計算式を入力するようになります)

定価 2,800 円の「実践 Vim」の税込価格は、3024.0|

あとは四捨五入したり、少数点以下を消してやれば OK ですね。

計算式には、四則演算、商や余り、だけではなく、Vim に用意されている関数も使用できます。基数変換などできるのも、知っていると便利かもしれません。

=round(123.456)
=pow(5, 3)
=0x9b
=printf("0x", 155)

余談ですが、税込価格の計算で、四捨五入や小数点以下除去までを計算式で書いてやることもできますが...

=printf("%.0f", round(2800*1.08))

何事もやり過ぎはよくありません。手でやった方が早いところは、パパっと手を動かして片付けてしまいましょう。

まとめ

挿入モードでの Ctrl-r は、その後に入力されたレジスタを挿入してくれる機能です。そこで = という特殊なレジスタ(Expresson レジスタ)を使って計算をさせているわけですね。

ちょっとした計算が キーボードから手を離さずマウスを握らず引き出しを開けず席を立たず にできてしまう Vim って、なんか凄く良くないですか。

103
88
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
103
88

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?