6
5

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 に惚れるシーン(ID 付きの項目の番号をまとめて加減算する)

Last updated at Posted at 2015-02-25

シーン 5

システムの開発時には、画面単位・機能単位に 「プログラム ID」なる番号を付与する場合があると思います。

プログラムを ID で管理すること自体の是非や、画面系と帳票系を区別なく通しで連番にしてしまっているという ID の振り方のマズさに等ついては触れていません。身近に発生しそうな適当なシーンに置き換えて読み進めてください。

ここでは、下記のように「プログラム ID」を割り当てているとしましょう。

# プログラム一覧

## 画面一覧
 - PRG0010 … メニュー画面
 - RPG0020 … 〇〇照会画面
 - PRG0030 … 〇〇登録画面
 - PRG0040 … 〇〇一覧画面
 - PRG0050 … △△照会画面
      :
      :

## 帳票一覧
 - PRG100 … 〇〇帳票
 - PRG110 … △△帳票
      :
      :
 - PRG190 … □□帳票
 - PRG200 … ◎◎帳票
 - PRG210 … ▲▲帳票
      :

機能数を適当に見積もって、画面系のプログラムを PRG000 〜 PRG090 の範囲で、帳票系のプログラムを PRG100 〜 の範囲で割り当てようとしていましたが、機能を洗い出していくうちに、画面系が 10 画面では足りなくなってきました。

どうしたい?

帳票系のIDについては、以下のように 余裕をみて PRG500 〜 の範囲に割り当て直すことにしましょう。

## 帳票一覧
 - PRG500 … 〇〇帳票
 - PRG510 … △△帳票
      :
      :
 - PRG590 … □□帳票
 - PRG600 … ◎◎帳票
 - PRG610 … ▲▲帳票
      :

どうする?

Vim には、Ctrl-A でカーソル位置の後方にある数値を +1 することができます。
加算したい行を選択して、それぞれの行に対して一度に +400 してやれば良さそうです。

  1. まず、ID を加算したい帳票系の行を Shift-V で選択します。
  2. :normal 400^A を入力して、Enterキーを押します。

上記 2. の ^A は、Ctrl-A を表しています。実際に入力する際には、Ctrl-V を入力した後、Ctrl-A を入力してください。

補足

上記の例では、Ctrl-A で加算していますが、Ctrl-X で減算もできます。
加減算する数値が PRG0500 のように 0 で始まる場合には、8進数として評価されてしまいます。このような数値を10進数として評価したい場合には、事前に :set nrformats-=octal しておく必要がある点には注意が必要です。

まとめ

ノーマルモードの Ctrl-ACtrl-X で数値のインクリメント・デクリメントは、単純な機能ですが地味に便利です。マクロと組み合わせても色々できそう。

あと、ノーマルモードのコマンドを、コマンドラインから実行するための :normal には、無限の可能性 が秘められていると思いませんか?

6
5
1

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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?