私が試したこと

私が試したこと

ノートブックでVimを開き、正規表現を実行すると、次のようになります。

:%s/foo/\n/g

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

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

私が試したこと

エンコーディングとファイルエンコーディング

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

:lang

:langは「現在の言語」を生成します:LC_CTYPE = en_US.UTF-8; LC_NUMERIC = C; LC_TIME = es_ES.UTF-8; LC_COLLATE = en_US.UTF-8; .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

関連情報