
當我在筆記型電腦上開啟 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. 」
如果我用以下命令調用 vim
LC_ALL=C vim foo
那麼它沒有什麼區別,問題仍然出現。
答案1
vim 中的 \n 表示替換並不是換行符,而是 null。
使用 \r 代替。例如
:%s/foo/\r/g