0

私は:gvimでコマンドを使用しています。:cnで見つかった行に直接ジャンプする方法はあり:gますか?

:h :gそのような施設は含まれていないようです。

4

3 に答える 3

3

で何をしたかによります:g

:gコマンドが一致したパターンを変更しなかった場合は、 を押しnて次の一致した行に移動できます。

しかし、パターンを変更した場合、たとえば、やした場合:g/foo/d、コマンド:g/foo/s/foo/bar/gを発行した後、それらの行はそこにありません。:gその後、それらの行に再び到達する方法はありません。

于 2013-08-22T09:51:06.407 に答える
2

パターンの一致に連続してジャンプする通常の方法は、グローバル コマンドではなく、通常の search を使用することです。これは、/<pattern>、そしてn連続した一致の場合です。

グローバル コマンドは、連続していない一連の行に対して:g別のコマンドを実行するために使用されます。連続する一連の行の場合は、範囲で十分です。例: .:1,5<command>

ただし、何らかの理由でグローバル コマンドを使用する必要がある場合、または単に記録のために、 を使用して必要なことを行う方法があります:g

Vim のヘルプから:

When using "global" in Ex mode, a special case is using ":visual" as a
command.  This will move to a matching line, go to Normal mode to let you
execute commands there until you use |Q| to return to Ex mode.  This will be
repeated for each matching line.  While doing this you cannot use ":global".
To abort this type CTRL-C twice.

全文を見るには、:h multi-repeat.

したがって、段階的に、それは次のようになります。

  • exモードに入る( を押すQ)。

    これはコマンドライン モードに似ていますが、コマンドの実行後に通常モードに戻ることはなく、先頭の:. ここから通常モードに戻る場合に:visual使用します。

  • サブコマンドを実行するグ​​ローバル コマンドを実行:visualします。これは、:g/<pattern>/visualです。

    これにより、試合ごとに通常モードになります。毎回、すべての vim のパワーを使用して、その試合でやりたいことを何でも行うことができます。終了したら、ex モードに戻り (Qもう一度押すと)、次の試合が続行されます。

  • 最後の試合が終わると、再びexモードになります。入力:visualして通常モードに戻ります。

于 2013-08-22T11:51:39.163 に答える
0

必要に応じて、の代わりに:greporを使用するだけで、一致する行がクイックフィックス リストに追加されます。(場所のリストを入力するには、コマンドの l バリエーションを使用します)。:vimgrep:g

于 2013-08-22T18:57:15.070 に答える