で置き換えコマンドVimの導入の記事、substitute
コマンドの構文は次のとおりです:[range]s[ubstitute]/{pattern}/{string}/[flags]
。
[flags]
一般的に使用されるオプションのフラグは、含まれているg
、c
、n
、e
ようにと。前記フラグg
ように、substitute
コマンドラインで変更することができるすべての一致がないだけ最初の一致で、フラグは、c
すべての変更を確認するか、または拒否することができ、フラグn
Vimの交換操作が行われないように、しかし、現在の統計情報を表示し代替コマンドの数に一致する。フラグがe
エラーをマスクに専用;フラグが&
Vimが使用される代替コマンドフラグを再利用を示すために。
動作範囲は、Vimの代替コマンド
理解を容易にするために、右の文字に増加するx軸、y軸成長のテキスト行に沿って、ファイル全体の二次元平面と考えることができます。デフォルトでは、substitute
コマンドは現在の行に作用し、そしてのみ修正する最初の場所の試合を。
どのように全範囲を拡大することで囲まれ、xとy軸平面に置き換えられますか?すべての単語の次にこの記事では、下に表示される進行が置き換えられます転がり順を追って説明例ステップを。
When the going gets tough, the tough get going.
If you are going through hell, keep going.
使用するsubstitute
コマンドを、最も簡単な方法は、パターンが一致するように提供することを目的とする{pattern}
だけでなく置換文字列を{string}
。したがって、Vimのコマンドラインモードでコマンドを実行する最初の試み:
:s/going/rolling
上記のコマンドを実行した後、あなたが最初のVimで見つけることができますがされてきただろうに置き換えローリングが、他の置換が起こるのテキストは内容が一致しませんでした。
作用するコマンド全体を置換するために、横軸は、フラグを使用する必要g
。
g
それは、グローバル(グローバル)の意味のように見える、間違えやすいg
フラグはファイル全体のスコープ上で交換作業を実装するために使用されますが、実際には、g
唯一表す現在のフルライン範囲を。Vimは直接「ラインエディタ編」から継承しているので、ラインエディタのために、グローバルスコープがあるライン、あるg
フラグコマンドの起源。
Vimのコマンドラインモードでコマンドを実行しようとし続けます。
:s/going/rolling/g
コマンドを実行した後、で見つかったすべてのオカレンスの現在の行の予定は全てに置き換えられてローリングが、別の場所にファイル外の現在の行に加えて、いくつかの試合は変更されていないが残っています。
どのように私は制御することができsubstitute
、ファイル全体でコマンドを縦軸に、それに実行するために?
答えは、使用することですsubsititute
コマンド形式を[range]
実行する範囲を指定します。あなたは、各行のコマンドを実行する必要がある場合だけで、ファイル全体を置き換えるsubstitute
接頭辞のコマンドの先頭%
に関して、range
推奨読書の特定の使用Vimの動作範囲、ファイル記述の範囲。
この時間は、Vimのコマンドラインモードで次のコマンドを実行しようとすると、文書全体がされていることがわかるだろう言葉を置き換えるための新しい単語となっているローリング。
:%s/going/rolling/g
上記の内容を要約すると次のとおりです。あなたは現在のファイルで部分一致を見つけ、交換したい場合は、それが明示的に示すことが必要であるsubstitute
全体のコマンドをX -軸とyのフラグによって、すなわち、シャフトの実装の特定のコンテキストg
横軸は使用している間、処理文字range
指定を処理範囲縦軸。
各交換作業の第二に、手動制御
特定の実装が操作を交換する前に、時々、あなたはどこ一致交換するかどうかを決定する前に観察する必要があるかもしれません。
たとえば、ファイルに、単語と仮定して行くのが直接使用する場合には合計10回登場し、第三の外観を行く特定のコンテキストの必要性は、ローリングに置き換えるべきではありません:%s/going/rolling/g
、それはすべての圧延されようとして置き換えられますこれは明らかに要件を満たしていません。
操作の上記目的を達成するためには、フラグを使用する必要があるc
制御するsubstitute
コマンドの動作は、コマンドが実行されます。
:%s/going/rolling/gc
フラグを増やしc
た後、Vimは全ての先端に各試合の結果を交換する前に、「ローリングによって置き換えられていますか?」だろう手動で確認する作業、プレス用y
、一度変更を確認するためにも押すことができるボタンをn
最後に変更スキップするボタンを。どのような選択の結果、Vimは入力を行うと、再びプロンプトで次の試合にカーソルを移動することを決定します。
選挙に加えて、y
選挙が確認n
外に飛ばし、あなたも入力することができq
、置換処理を終了するの使用a
にも使用することができ、手動で確認することなく、どこでVimを示す後に交換し、どこのすべての試合をl
試合の現在のVimの直接表示を交換した後、終了置換処理。
次の表は、与えられたVimのヒントについては、すべての答えと使用の交換をまとめました。
答え | 使用 |
---|---|
y |
ここで試合を交換してください |
n |
ここで試合を無視 |
q |
終了置換処理 |
l |
ここで出口をマッチングを交換した後(Lは最後の表現しました) |
a |
ここではすべての一致を置換した後、(aはすべてを表します) |
<Ctrl-e> |
上にスクロール |
<Ctrl-y> |
下にスクロールします |