如何在 Windows 上使用 vim 编辑 UTF-8 文件

如何在 Windows 上使用 vim 编辑 UTF-8 文件

我正在尝试使用 Windows(prompt/powershell)上的 vim(7.3)编辑 UTF-8 文本文件。

我的 _vimrc 文件非常简单:

set encoding=latin-1
set fileencoding=utf-8

问题是,当编辑已存在的文件时,它(显然)可以工作。但如果我使用 vim 创建新文件,它不会写入相同的内容。

假设我使用 打开一个文件vim myfile.txt,其中包含以下内容:

discussão

如果我:wq这样做,一切都好。

现在,如果我创建一个新文件,保存并重新打开后我会得到:

discussão

如果我将其编辑得像第一个一样并保存它,我可以任意多次编辑该文件而不会出现问题。

答案1

使用

set encoding=utf-8

并阅读:help 'encoding'

简而言之,此选项定义 Vim 如何处理文本内部。它通常由 Vim 自动设置为匹配您系统的语言环境。如果它无法获取该信息(或者您的语言环境是latin1),Vim 会将其设置为latin1,这显然很糟糕。

最好的办法是将其明确设置为utf-8

另一方面,set fileencoding=utf-8它是没有必要的,而且可能适得其反,因为它是由 Vim 为每个缓冲区设置的。

相关内容