我正在尝试使用 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 为每个缓冲区设置的。