./?Vim/%E6%A4%9C%E7%B4%A2/gn%E3%83%A2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E7%BD%AE%E6%8F%9B
- 追加された行はこの色です。
- 削除された行はこの色です。
- Vim/検索/gnモーションで置換 へ行く。
- Vim/検索/gnモーションで置換 の差分を削除
* gnモーションで置換 [#zadbe5ce] 1: var f = new Foo(); 2: if (1) { 3: var a = Foo.foo(); 4: } 5: Foo.bar(); 1: var f = new Boo(); 2: if (1) { 3: var a = Boo.foo(); 4: } 5: Boo(); - gnモーションは最後に使われた検索モーションで検索し、ビジュアルモードで選択する。 - 検索ワードがファイル内にいくつもあり、それらのワードを連続して置換する場合などにgnモーションを使うと便利。 - 上のようなコードでFooをBooに変えたい場合、 - まずggで1行目に行き、/Fooで検索をしてnew Foo();の箇所に行く。 - ここでcgnとすると、Fooが消えて置換モードに入るので、Booと入力する。これでFoo()がBoo()になる。 - ここでcgnとすると、(Fooが再検索されてビジュアル選択され)cでFooが消えて置換モードに入るので、Booと入力する。これでFoo()がBoo()になる。 - 次にnで3行目のa = Foo.foo()に行く。.ドットでFooをBooに変える。 - さらにnで3行目のBoo.foo()に行くかもだが、ここは無視して、さらにnを実行して、5行目のFoo.bar()に行く。.ドットでFooをBooに変える。 - これでFooをBooに変えることができた。 ** 参考 [#b3768fb4] vimcasts.org/episodes/operating-on-search-matches-using-gn/