私が試したこと

私が試したこと

ラップトップで Vim を開いて、次のような正規表現を実行します。

:%s/foo/\n/g

vim は改行の代わりに ^@ を挿入します。

この問題は先週から発生し始めました。私は Ubuntu 18.04.04 を実行しています。この問題は Ubuntu がアップデートをインストールした後に発生したのではないかと思います。

私が試したこと

エンコードとファイルエンコード

エンコーディングとファイルエンコーディングを utf-8 に設定してから latin1 に設定してみましたが、違いはありませんでした。

:ラン

:lang は「現在の言語: "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=es_ES.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=es_ES.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=es_ES.UTF-8;LC_NAME=es_ES.UTF-8;LC_ADDRESS=es_ES.UTF-8;LC_ TELEPHONE=es_ES.UTF-8;LC_MEASUREMENT=es_ES.UTF-8;LC_IDENTIFICATION=es_ES.UTF-8" を生成します。

vimを呼び出すと

LC_ALL=C vim foo

それでも違いはなく、問題は依然として発生します。

答え1

vim での置換における \n は改行ではなく null を意味します。

代わりに\rを使用してください。例:

:%s/foo/\r/g

関連情報