テキストの数字部分を数値として増減
この記事では、数値を増減する方法について説明します。
数値の増減とは、テキスト中の数字の部分を、数値として加算または減算する機能です。
なお、この記事では以下のテキストを例に操作を説明します。
- 1行目です。
- 2行目です。
- 3行目です。
- 4行目です。
- 5行目です。
- 6行目です。
- 7行目です。
- 8行目です。
- 9行目です。
- 10行目です。
- 11行目です。
- 12行目です。
- 13行目です。
- 14行目です。
- 15行目です。
- 16行目です。
- 17行目です。
- 18行目です。
- 19行目です。
- 20行目です。
- 21行目です。
- 22行目です。
- 23行目です。
- 24行目です。
- 25行目です。
- 26行目です。
- 27行目です。
- 28行目です。
- 29行目です。
- 30行目です。
- 31行目です。
- 32行目です。
- 33行目です。
- 34行目です。
- 35行目です。
- 36行目です。
- 37行目です。
- 38行目です。
- 39行目です。
- 40行目です。
- 41行目です。
- 42行目です。
- 43行目です。
- 44行目です。
- 45行目です。
- 46行目です。
- 47行目です。
- 48行目です。
- 49行目です。
- 50行目です。
- 51行目です。
- 52行目です。
- 53行目です。
- 54行目です。
- 55行目です。
- 56行目です。
- 57行目です。
- 58行目です。
- 59行目です。
- 60行目です。
- 61行目です。
- 62行目です。
- 63行目です。
- 64行目です。
- 65行目です。
- 66行目です。
- 67行目です。
- 68行目です。
- 69行目です。
- 70行目です。
- 71行目です。
- 72行目です。
- 73行目です。
- 74行目です。
- 75行目です。
- 76行目です。
- 77行目です。
- 78行目です。
- 79行目です。
- 80行目です。
- 81行目です。
- 82行目です。
- 83行目です。
- 84行目です。
- 85行目です。
- 86行目です。
- 87行目です。
- 88行目です。
- 89行目です。
- 90行目です。
- 91行目です。
- 92行目です。
- 93行目です。
- 94行目です。
- 95行目です。
- 96行目です。
- 97行目です。
- 98行目です。
- 99行目です。
- 100行目です。
加算と減算
まずは、数値の加算から説明します。 数値の加算は、CTRL + A コマンドを使用します。

では実際に加算してみましょう。

上図のように文字カーソルは7行目の "7" の位置にあるものとして解説します。
では、文字カーソルの位置にある "7" を加算しましょう。
キーボードから CTRL + A を入力してください。
<C-a>

上図のように "7" に 1 が加算されて "8" になります。
続いて、回数指定で CTRL + A コマンドを実行してみましょう。
キーボードから 5CTRL + A を入力してください。
5<C-a>

上図のように "8" に 5 が加算されて "13" になります。
続いて、数値を減算してみましょう。 数値の減算は、CTRL + X コマンドを使用します。

では実際に減算してみましょう。
キーボードから 6CTRL + X を入力してください。
6<C-x>

上図のように "13" から 6 が減算されて "7" になります。
8進数と16進数について
おそらく、ソフトウェア開発に携わっている方にのみ関係のある話です。
ここで説明した数値の加算と減算は、10進数だけでなく、8進数や16進数にも使えます。 ただし、数字が8進数か16進数かは自動的に判断されます。
先頭が "0x" で始まっていれば16進数、"0" で始まっていれば8進数として認識されます。 それ以外である "1" から "9" で始まっていれば10進数として扱われます。
例えば、
- 0x9
に加算すると、
- 0xa
となり、
- 07
に加算すると、
- 010
となります。
8進数や16進数の増減の無効化や英字の増減について
設定項目 "nrformats" を設定することで、0x や 0 で始まる数字も10進数として扱うように設定することができます。 また、英字を対象に増減させるよう設定することも可能です。
例えば、
:set nrformats=octal,hex,alpha<Enter>
とすることで、10進数・8進数・16進数・英字の4種類を増減させることができます。
なお、
:set nrformats=<Enter>
とすることで、0x や 0 で始まる数字も10進数として扱われます。 なお、英字の増減はできなくなります。
また、
:set nrformats=hex,alpha<Enter>
とすることで、0x で始まる数字は16進数として扱われますが、0 で始まる数字は10進数となります。 また、英字も増減させることができます。





