行範囲指定の基本
Vim の ex コマンドは、:
から始めるコマンドモードのことで、各コマンドの先頭には、コマンドをどの行に対して実行するかを示す、行範囲 を指定することができます。
:行範囲 コマンド
行範囲を省略した場合は、コマンドはカレント行にだけ影響を及ぼします。
行範囲に .
(ドット)を指定した場合も、同様にカレント行に対してだけ実行されます。
行範囲指定の例
行番号ベースで指定する方法
:% <command> " ファイル全体に対して command を実行
:3 <command> " 3 行目に対して command を実行
:3,5 <command> " 3 行目から 5 行目までに対して command を実行
:3,$ <command> " 3 行目から最後の行までに対して command を実行
:. <command> " カレント行に対して command を実行(省略した場合と同様)
:.,5 <command> " カレント行から 5 行目までに対して command を実行
:.;+5 <command> " カレント行から 5 行目下の行までに対して command を実行
パターンに一致する文字列を含む行を検索して行指定する方法
:/pattern/ " pattern を含む行(1 行のみ)
:/pattern/+1 " pattern を含む行の 1 行下の行(1 行のみ)
:/pattern/;+4 " pattern を含む行から 4 行下の行まで
:g/pattern/ " pattern を含むすべての行
:/pat1/,/pat2/ " pat1 を含む行から pat2 を含む行まで(最初に見つかった部分のみ)
:/pat1/,/pat2/g " pat1 を含む行から pat2 を含む行まで(見つかった範囲すべて)
範囲指定を連続して記述すると AND 条件で絞り込むことができます。