ノートブックで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