Vimで少数を四捨五入したい時、少し前に作った置換コマンドを使っているが、やはり余計な0を削除したいと感じることが多かった。手作業でやるのも限界があるので、これも置換コマンドでやっていたが、2回置換コマンドを入力するのはいかにも面倒くさい。独自コマンドはなるべく.vimrcに書かないことにしているので、float-roundプラグインとして切り分けることにした。

コマンド名はRoundFloatとした。

:RoundFloat 3

引数に数字を指定(必須)すると、その桁まで四捨五入される。上記例ではファイル全体の小数が小数点以下3桁に四捨五入される。

:RoundFloat 0

つまり整数に四捨五入したい場合は0にすれば良い。

:'<,'>RoundTable 3

選択範囲を受け取ることができる(デフォルトはファイル全体)ので、特定の範囲だけを処理することも可能だ。


ただし常に行単位で処理する。そしてレジスター(f)も使う。また1桁に四捨五入した時に不要な0が削除されないというバグがまだある。注意点はこれくらいで、それなりに便利に使っている。