addressing in ex #2

若干の補足、あるいはトリビア:

  • 1 以上の整数として行番号を示すことができるが、実は 0 も許される。ただし多くの場合、0 は 1 に丸められる。ではどういう場合に 0 が役立つのかというと、たとえば :10,20co0 のようにバッファ先頭へコピーしたい場合など。copy コマンドで指定するコピー先アドレスは、実際にはコピーされる位置の直前の行番号である。したがって、バッファ先頭である 1 行目へコピーしたい場合は 0 を指定する必要があるのだ。
  • / ~ / の検索開始位置が曖昧な書き方になっていたが、正規表現を明示した場合であっても、省略した場合でも、検索開始位置はカーソルのある行の次の行からである。
  • アドレスは最大 2 つまで指定できるのだが、実はもっと多くのアドレスを指定してもエラーにはならない。単にそれぞれのコマンドが必要とする最大のアドレスが、アドレス群の末尾から取られるだけである。つまり :1,2,3p は 2 行目から 3 行目までが対象となる。
  • 指定の行へカーソルを移動させる場合、visual モードでは [行番号]G と入力するが、ex モードで :行番号 と入力する方法もある。このようにコマンドを省略した場合、内部的には暗黙的に print コマンドが選択される。ということはつまりコンソールに指定の行が出力されるはずであるが(:1p などと入力したかのように)そうならないのは、コマンドを省略したアドレス部分から後続する文字列が \n である場合は特別扱いで何も出力しないからだ。したがって、:||| などと入力すると、現在行が 3 回 出力される(4 回ではなく)。

Leave a Reply

Your email address will not be published. Required fields are marked *