用vim打开后中文乱码怎么办

用vim打开后中文乱码怎么办


小唯快跑啊
浏览 1082回答 2
2回答

蓝山帝景

在/etc/vimrc 和/etc/virc里面写如下代码:set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8linux介绍:Linux 主要作为Linux发行版(通常被称为"distro")的一部分而使用。这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。大多数系统还包括了像提供GUI界面的 XFree86之类的曾经运行于BSD的程序。发行版为许多不同的目的而制作, 包括对不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式系统,甚至许多版本故意地只加入免费软件。

一只名叫tom的猫

一般来说只需要正确设置vim的编码识别序列就很少会遇到乱码问题:set fileencodings=ucs-bom,utf-8,utf-16,gbk,big5,gb18030,latin1这个设置是有顺序的,一般原则是尽可能把比较独特、不会和别的编码混淆的放在前面(例如ucs-bom,由于带有BOM头的关系很难和别的混淆),然后后面可以按照常用程度降序排列。latin1作为fallback放到最后。这个序列可能还不是很科学也不是很完整(日文、韩文这两个也比较容易出错的就没有包括),但至少就我目前的使用情况来说(英文及一些ASCII扩展/变种、简体和繁体中文)都没有遇到过问题。如果有朋友知道更好的顺序,欢迎回复或者直接修改我的回答。如果打开之后还是遇到了乱码,那么就需要手动指定编码了。注意,网络上很多地方提到的设置“fileencoding”(注意不带s)的方法是错误的。认真阅读帮助文档:When reading a file 'fileencoding' will be set from 'fileencodings'. To read a file in a certain encoding it won't work by setting 'fileencoding', use the |++enc| argument.当你打开一个文件以后,vim就已经选定好了编码并且认为就是这个编码了,set fileencoding只是修改你希望这个文件以什么编码存在,相当于是设置保存时的编码——一旦设置了不同的fileencoding之后这个文件就变成modified了,需要保存(编码变了)。正确的做法是在打开文件时使用++enc参数::e ++enc=someencoding somefile如果想重新打开当前文件的话就省略文件名somefile即可。这儿有一个wiki你可以看看:Reloading a file using a different encoding最后,不要碰encoding这个设置!这是vim的内部编码,除非你确定知道你在干什么,否则一般不需要修改。
打开App,查看更多内容
随时随地看视频慕课网APP