• 在Vim中可以直接查看文件编码
     :set fileencoding              即可显示文件编码格式。
  • 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
    :set fileencoding=utf-8
  • 一般的,vim打开中文文件时会出现乱码,解决办法 在.vimrc中设置

    set fileencoding=utf-8
    set fileencodings=utf-8,gb18030,utf-16,big5

vim里面的编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)和fencs(fileencodings)

  • 其中fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系统环境跟你的enc设置匹配),你可以通过改变fenc后再w来将此文件存成不同的编码。比如说,我:set fenc=utf-8然后:w就把文件存成utf-8的了,:setfenc=gb18030再:w就把文件存成gb18030的了。这个值对于打开文件的时候是否能够正确地解码没有任何关系。
  • fencs就是用来在打开文件的时候进行解码的猜测列表。文件编码没有百分百正确的判断方法,所以vim只能猜测文件编码。比如我的vimrc里面这个的设置是 set fileencodings=utf-8,gb18030,utf-16,big5所以我的vim每打开一个文件,先尝试用utf-8进行解码,如果用utf-8解码到了一半出错(所谓出错的意思是某个地方无法用utf-8正确地解码),那么就从头来用gb18030重新尝试解码,如果gb18030又出错(注意gb18030并不是像utf-8似的规则编码,所以所谓的出错只是说某个编码没有对应的有意义的字,比如0),就尝试用utf-16,仍然出错就尝试用big5。这一趟下来,如果中间的某次解码从头到尾都没有出错,那么vim就认为这个文件是这个编码的,不会再进行后面的尝试了。这个时候,fenc的值就会被设为vim最后采用的编码值,可以用:set fenc?来查看具体是什。当然这个也是有可能出错的,比如你的文件是gb18030编码的,但是实际上只有一两个字符是中文,那么有可能他们正好也能被utf-8解码,那么这个文件就会被误认为是utf-8的导致错误解码。
  • 至于enc,其作用基本只是显示。不管最后的文件是什么编码的,vim都会将其转换为当前系统编码来进行处理,这样才能在当前系统里面正确地显示出来,因此enc就是干这个的。在windows下面,enc默认是cp936,这也就是中文windows的默认编码,所以enc是不需要改的。在linux下,随着你的系统locale可能设为zh_CN.gb18030或者zh_CN.utf-8,你的enc要对应的设为gb18030或者utf-8(或者gbk之类的)。
  • 最后再来说一下新建空文件的默认编码。看文档好像说会采用fencs里面的第一个编码作为新建文件的默认编码。但是这里有一个问题,就是fencs的顺序跟解码成功率有很大关系,根据我的经验utf-8在前比gb18030在前成功率要高一些,那么如果我新建文件默认想让它是gb18030编码怎么办?一个方法是每次新建文件后都:set fenc=gb18030一下,不过我发现在vimrc里面设置fenc=gb18030也能达到这个效果。

转载于:https://www.cnblogs.com/qbmiller/p/3613258.html

vim编码设置问题(转)相关推荐

  1. linux centos 的编码格式,Linux/CentOS/fedora下vim显示的字符编码设置

    和所有的流行文本编辑器一样,vim可以很好的编辑各种字符编码的文件,这当然包括ucs-2.utf-8 等流行的 unicode 编码方式.然而不幸的是,和很多来自 linux 世界的软件一样,这需要你 ...

  2. Vim中输入法与编码设置

    目录 输入法与编码设置的FAQ 1 中文输入法 1.1 Windows 1.2 Linux 2 编码问题 2.1 怎么让Vim正确识别编码? 2.1.1 关于编码的一些基础 2.2 为什么有乱码? 2 ...

  3. linux系统生成的新文件是什么编码的,Linux系统的默认编码设置

    修改/etc/sysconfig/language文件,将RC_LANG, RC_LC_ALL设置为zh_CN.GB2312, 同时将ROOT_USES_LANG设置为 "yes" ...

  4. vim7.1在windows下的编码设置[转]

    在gvm配置文件中: (gvim安装目录下的_vimrc文件中) """""""""""& ...

  5. 如何配置vim(设置快捷键,自定义主题,安装插件)

    vim是一款轻量级的编辑器,并且有着强大的插件群.其强大的自定义快捷键功能,可以让你不碰鼠标的情况下,实现各种编辑操作. vim的配置目录 .vimrc是vim的配置文件, 用户需要修改这个文件来对v ...

  6. Vim 个人设置 (新加cctree等插件)

    "F1~F12快捷键映射 ""{{{ map :CCTreeLoadXRefDBFromDisk $CCTREE_DB map :BufExplorer nnoremap ...

  7. MyEclipse编码设置,中文乱码解决方法,UTF-8,GBK(转)

    一.设置新建常见类型文件的默认编码格式,也就是文件保存的格式. 在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码 ...

  8. vim tab设置为4个空格

    为了vim更好的支持python写代码,修改tab默认4个空格有两种设置方法: 1. vim /etc/vimrc set ts=4 set sw=4 2. vim /etc/vimrc set ts ...

  9. Linux:vim环境设置

    vim环境设置 vim的环境设置在/etc/vimrc的这个文件中,不过不建议直接修改该配置文件.但是可以修改~/.vimrc文件,默认是不存在的,要手动创建并写入设置值. set hlsearch ...

最新文章

  1. 《中国人工智能学会通讯》——11.52 基于直推式学习的异质人脸图像 合成
  2. Xcode 新项目删除 storyboard 文件
  3. sqlplus中调用shell_(转)shell 调用sqlplus各种情况示例
  4. 2 _RESETFUL介绍
  5. matlab中怎么查看变量,Matlab 查看内存中的变量,清空屏幕等命令
  6. js的事件循环机制,同步和异步,以及宏任务与微任务的执行顺序
  7. 详解SQL2005中的AWE
  8. 拓端tecdat|R语言时间序列分析复杂的季节模式
  9. 《模式分类》第二版 第二章课后编程题
  10. 如何从python官网下载模块-Python各种模块下载及安装配置
  11. Axure RP 8 Pro 破解版软件安装包
  12. womic网络错误_WO Mic客户端下载_WO Mic Client(将手机变成电脑麦克风) 3.5 官方版_极速下载站...
  13. C#自带word COM保存docx文档时文件不兼容
  14. mssql2000连接oracle命令方式
  15. (转)Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
  16. 《视觉SLAM十四讲》-第五章第1节-1-“相机与图像”-“相机模型”-“针孔相机模型”-学习笔记总结
  17. Windows11/10 环境下安装Madagascar (WSL Ubuntu)
  18. 851-40亿个号码如何去重?
  19. 2016华为软件精英挑战赛:赛题及其答疑汇总
  20. web前端期末大作业 html+css+javascript网页设计实例 企业网站制作内容

热门文章

  1. vue+nodejs 将canvas发布到dlna投屏服务
  2. oracle 切割字符串加引号_oracle存储过程中单引号及字符串拼接处理
  3. python内置函数map_python内置函数 map/reduce
  4. 【Flink】Flink 源码之 安全认证 kerberos 认证
  5. 【maven】scalac:error while loading <root>,Error accessing
  6. 【算法】剑指 Offer 36. 二叉搜索树与双向链表
  7. 78-spark2.2的编译
  8. 95-080-046-源码-启动-flink-daemon.sh
  9. 【Flink】Rowtime timestamp is null. Please make sure that a proper TimestampAssigner is defined and th
  10. mac下IDEA远程调试hive-2.2.0