Section Next | Prev


1.9 ex コマンドの使用

すでに幾つか登場したコロン(:)で始まるコマンドは、実はラインエディタ ex の機能 を呼び出しています。
ex コマンドはおおよそ次の形式です。
:[ 開始行 , 終了行 ] コマンド [ パラメータ.... ]
また vi と ex は同じプログラムで、起動時に呼び出された名称で機能を切り替えて います。従って vi から ex へ(コマンド Q)、ex から vi へ コマンド :vi) と切り替える事ができます。
ex コマンドは特定のパターンをもつ行について、 まとめて修正を加える場合に便利です。
例えば、1行から10行を削除するには d コマンドを使って次のようにします。
	:1,10d

1.9.1 行を指定した置換

全ての行について行う場合は、全行を表す % が使えます。
次は全ての print を puts する場合の例です。
	
置換後は最後にマッチした場所にカーソルが移動します。
	

1.9.2 パターンマッチした行の加工

ex コマンドを駆使することで、より複雑な置換が可能となります。 行を指定する変わりにパターンを指定し、マッチした各行についてコマンドを実行 するためにはグローバル指定(g) を用います。
:g/パターン/コマンド[引き数....]
例えば、空白行を全て削除するには次のようになります。
(ここで ^ は行の先頭、$ は末尾を表すメタ・キャラクターで、その間になにもない という行=空行を削除)
	:g/^$/d
更に特定の文字列を含む行について、置換を行うこともできます。 たとえば、次の例では文字列(csh)で終わる行の先頭を 'C' に置換してます。
	
最後の行の先頭1文字(空白) が 'C' に置き変わる。
	
パターンとコマンドの区切り文字には一般にスラッシュ ( / ) が用いられますが、 この例のようにスラッシュを含むパターンを操作したい場合は、カンマ( , )など他の任意の1文字を使うことができます。

1.9.3 起動時のコマンド実行

vi 起動時に、+ を用いて、ex コマンドを実行することができます。

Section Next | Prev

Copyright ycosSystems 2007, vi/Body19.html