トップ > 初級編 > テキストの編集 >
数値を増減する

  

テキストの数字部分を数値として増減

この記事では、数値を増減する方法について説明します。

数値の増減とは、テキスト中の数字の部分を、数値として加算または減算する機能です

  
オリジナルのviエディタではこの記事で紹介するコマンドは使えません。

なお、この記事では以下のテキストを例に操作を説明します

  1. 1行目です。
  2. 2行目です。
  3. 3行目です。
  4. 4行目です。
  5. 5行目です。
  6. 6行目です。
  7. 7行目です。
  8. 8行目です。
  9. 9行目です。
  10. 10行目です。
  11. 11行目です。
  12. 12行目です。
  13. 13行目です。
  14. 14行目です。
  15. 15行目です。
  16. 16行目です。
  17. 17行目です。
  18. 18行目です。
  19. 19行目です。
  20. 20行目です。
  21. 21行目です。
  22. 22行目です。
  23. 23行目です。
  24. 24行目です。
  25. 25行目です。
  26. 26行目です。
  27. 27行目です。
  28. 28行目です。
  29. 29行目です。
  30. 30行目です。
  31. 31行目です。
  32. 32行目です。
  33. 33行目です。
  34. 34行目です。
  35. 35行目です。
  36. 36行目です。
  37. 37行目です。
  38. 38行目です。
  39. 39行目です。
  40. 40行目です。
  41. 41行目です。
  42. 42行目です。
  43. 43行目です。
  44. 44行目です。
  45. 45行目です。
  46. 46行目です。
  47. 47行目です。
  48. 48行目です。
  49. 49行目です。
  50. 50行目です。
  51. 51行目です。
  52. 52行目です。
  53. 53行目です。
  54. 54行目です。
  55. 55行目です。
  56. 56行目です。
  57. 57行目です。
  58. 58行目です。
  59. 59行目です。
  60. 60行目です。
  61. 61行目です。
  62. 62行目です。
  63. 63行目です。
  64. 64行目です。
  65. 65行目です。
  66. 66行目です。
  67. 67行目です。
  68. 68行目です。
  69. 69行目です。
  70. 70行目です。
  71. 71行目です。
  72. 72行目です。
  73. 73行目です。
  74. 74行目です。
  75. 75行目です。
  76. 76行目です。
  77. 77行目です。
  78. 78行目です。
  79. 79行目です。
  80. 80行目です。
  81. 81行目です。
  82. 82行目です。
  83. 83行目です。
  84. 84行目です。
  85. 85行目です。
  86. 86行目です。
  87. 87行目です。
  88. 88行目です。
  89. 89行目です。
  90. 90行目です。
  91. 91行目です。
  92. 92行目です。
  93. 93行目です。
  94. 94行目です。
  95. 95行目です。
  96. 96行目です。
  97. 97行目です。
  98. 98行目です。
  99. 99行目です。
  100. 100行目です。
 

加算と減算

まずは、数値の加算から説明します。 数値の加算は、CTRL + A コマンドを使用します

 
  
CTRL + A コマンドは "Add" から連想して覚えましょう。

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

文字カーソルは7行目の 7 の位置にある
文字カーソルは7行目の 7 の位置にある

上図のように文字カーソルは7行目の "7" の位置にあるものとして解説します。

では、文字カーソルの位置にある "7" を加算しましょう。

キーボードから CTRL + A を入力してください。

<C-a>
7 に 1 が加算されて 8 になる
7 に 1 が加算されて 8 になる

上図のように "7" に 1 が加算されて "8" になります。

続いて、回数指定で CTRL + A コマンドを実行してみましょう。

キーボードから 5CTRL + A を入力してください。

5<C-a>
8 に 5 が 加算されて 13 になる
8 に 5 が 加算されて 13 になる

上図のように "8" に 5 が加算されて "13" になります。

続いて、数値を減算してみましょう。 数値の減算は、CTRL + X コマンドを使用します

 

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

キーボードから 6CTRL + X を入力してください。

6<C-x>
13 から 6 が 減算されて 7 になる
13 から 6 が 減算されて 7 になる

上図のように "13" から 6 が減算されて "7" になります。

8進数と16進数について

おそらく、ソフトウェア開発に携わっている方にのみ関係のある話です

ここで説明した数値の加算と減算は、10進数だけでなく、8進数や16進数にも使えます。 ただし、数字が8進数か16進数かは自動的に判断されます

先頭が "0x" で始まっていれば16進数、"0" で始まっていれば8進数として認識されます。 それ以外である "1" から "9" で始まっていれば10進数として扱われます。

例えば、

  1. 0x9

に加算すると、

  1. 0xa

となり、

  1. 07

に加算すると、

  1. 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進数となります。 また、英字も増減させることができます。

  
  

まとめ

CTRL + A コマンドで、文字カーソルの位置の数字を数値として加算することができます。 また、CTRL + X コマンドでは、逆に減算することができます。

コマンド 説明
CTRL + A 数値を加算する
(文字カーソルの位置にある数字を加算する)
CTRL + X 数値を減算する
(文字カーソルの位置にある数字を減算する)
メニュー