
ラップトップで 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