web-dev-qa-db-ja.com

GVimの正規表現の代わりに改行文字を入れる方法

私はWindows7でGVimを使用しています。

正規表現の置換を使用して改行文字を配置する方法を学びたいです。これを行うために、\ rおよび\ nメタ文字を使用しようとしましたが、置換されたテキストに通常の改行が表示されません。

たとえば、最初は次のようになります。

line 1
line 2

Before substitution

次の置換式を使用します。

:%s/\n/\n\n/g

次に、GVimは次のテキストを生成します。

line 1^@^@line 2^@^@

After substitution with \n as newline characters

代わりに、置換式で\ r\nを使用すると

:%s/\n/\r\n/g

次に、GVimは次のテキストを生成します。

line 1
^@line 2
^@

After substitution with \r\n as newline

それらの^ @文字は何ですか?

置換式で改行文字を適切に使用するにはどうすればよいですか?

22
Mert Nuhoglu

^ @はnulです


何らかの理由で、vimは改行を挿入するために置換テキストに\rを表示したいと考えています。 (置換の\nはnulを挿入します。)

したがって、/\nを実行して改行を正常に見つけたら、次のことを試してください。

s//\r/

または、改行を追加するには:

s/$/\r/

パターン側では、\rは実際の(015)CR文字を意味し、リターンを改行に置き換える場合は、次の奇妙なコマンドになります。

s/\r/\r/

いいえ、それはノーオペレーションではありません。

30
DigitalRoss

この

s/\r/\r/

失敗します。だが

s/\n/\r/

正常に動作します。

4
Aaron