0

たくさんの行があるとしましょう

    echo "<br/>";
    echo "<pre>";
    error_log("whatever");
    echo "</pre>";
    echo "<br/>";

コメントアウトしたいので、このコマンドを実行できます

s / ^ /#

ただし、最初の単語の前ではなく、行の先頭に#記号を付けるため、下の行のようになります。

#    echo "<br/>";
#    echo "<pre>";
#    error_log("whatever");
#    echo "</pre>";
#    echo "<br/>";

以下のコードのようにするにはどうすればよいですか?

    #echo "<br/>";
    #echo "<pre>";
    #error_log("whatever");
    #echo "</pre>";
    #echo "<br/>";

そのための適切な正規表現は何ですか?

4

7 に答える 7

2

多くの方法があります。これが1つです:

:'<,'>s/^\s*/\0#
于 2012-10-26T21:20:27.093 に答える
2

別のもの:

  1. ですべての行を視覚的に選択しますV<motion>

  2. を使用して、各行で通常:normalモード コマンドを実行します。:'<,'>norm I#

範囲は自動的に追加されるため、完全なシーケンスはV4j:norm I#.

于 2012-10-27T05:46:01.870 に答える
1

コメントインとコメントアウトについては、プラグインに依存します。多くは構成可能であり、多数のプログラミング言語に対していくつかのスタイルのコメントを提供し、すべて短いマッピングを備えています。2つの人気のあるものはNERD_CommentertCommentです。

于 2012-10-27T09:04:11.683 に答える
1

以下を使用できるはずです。

s/^[ \t]*/&#/

この正規表現は、行頭のタブまたはスペースに一致し、一致全体 ( &) とそれに続く#.

于 2012-10-26T21:19:15.077 に答える
1

私がすることの 1 つは、行の先頭に移動し ( ^)、Ctrl+vを押し、次に行番号を入力してから を入力ggShift-I、 を入力して#を押しESCます。もっと良い方法があると確信していますが、それは私にとってはうまくいくようです:)

于 2012-10-26T21:20:19.883 に答える
1

Another one:

  1. Start a macro with qx.

  2. Insert an octothorpe right before the first printable character on the line, go back to normal mode and go down one line with I#<Esc>j

  3. Stop recording with q.

  4. Execute the macro x times with 5@x.

于 2012-10-27T05:50:51.247 に答える
0

次のようなことができます。

s/^\([\s\t]*\)/\1#/

これにより、すべてのスペースとタブが変数に取り込まれ、記号\1の前に復元されます#

于 2012-10-26T21:20:10.620 に答える