vim 编码格式设置不正确_如何将VIM的默认编码设置为UTF-8?

当Vim读取现有文件时,它将尝试检测文件编码。写入文件时,Vim使用检测到的文件编码(除非您以不同的方式告诉它)。因此,将检测为UTF-8的文件写为UTF-8,将检测为Latin-1的文件写为Latin-1,依此类推。

默认情况下,检测过程是原始的。用Vim打开的每个文件都将假定为Latin-1,除非它在顶部检测到Unicode字节顺序标记。没有字节顺序标记的UTF-8文件将很难编辑,因为任何多字节字符将在缓冲区中显示为字符序列而不是单个字符。

更糟糕的是,Vim默认情况下使用Latin-1表示缓冲区中的文本。因此,具有字节顺序标记的UTF-8文件将通过向下转换为Latin-1损坏。

解决方案是将Vim配置为在内部使用UTF-8。实际上,这是Vim文档中所建议的,并且不进行开箱即用的配置的唯一原因是,避免在希望Vim基本充当Latin-1编辑器的用户之间造成巨大的混乱。

在您的中.vimrc,添加set encoding=utf-8并重新启动Vim。

或者,设置LANG环境变量以指示UTF-8是您首选的字符编码。这不仅会影响Vim,还会影响依赖于LANG它确定文本表示方式的任何软件。例如,要指示文本应以en美国(US)中的英语()出现,并以UTF-8(utf-8)编码,请设置LANG=en_US.utf-8。

现在,Vim将使用UTF-8表示缓冲区中的文本。另外,它还将更加确定地检测文件中的UTF-8编码。除了寻找字节顺序标记外,它还会在不返回拉丁1之前检查没有字节顺序标记的UTF-8。因此,它将不再损坏以UTF-8编码的文件,并且在编辑会话期间应正确显示UTF-8字符。

有关Vim如何检测文件编码的更多信息,请参见Vim文档中的

fileencodings选项。

有关设置Vim的内部使用编码的更多信息,请参阅该encoding

选项。

如果你需要覆盖写入文件时回磁盘使用的编码,看到的fileencoding

选项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值