再说vim 乱码问题

在vimrc设置中, 可以简写:
file = f
encoding = enc
fileencodings = fencs
fileencoding = fenc

主要有四个编码, 要了解它们的含义:
encoding 是vim内部,vim程序本身使用的编码, 用这个编码字符集来显示菜单 信息 buffer等, 这个通常要设置成latin1 utf8 , 如果不设置通常是跟系统自身的编码相同, 实际上, 系统自身的编码应该照顾多方面的问题, 还真的应该设置成utf-8

fenc是指当前正在编辑的文件采用的编码方式, 这个也用来保存文件时的编码, 可以用set fenc=...来改变

fencs是vim打开文件时, 用来“探测”“猜测”文件编码的顺序... 这个有很重要的一个问题,就是 最后的那个编码要是 latin1, 不能把gb2312 gbk 等中文编码放在最后, 放在latin1后面, 这个就不能正确探测.?? 估计是一旦用latin1 来探测了, 如果还是不能正确探测(解析分析) 就不再使用后面的编码来猜测了...

参考这篇文章: http://www.cnblogs.com/hopeworld/archive/2011/04/20/2022331.html

摘录: 那么如果我新建文件默认想让它是gb18030编码怎么 办?一个方法是每次新建文件后都:set fenc=gb18030一下,不过我发现在vimrc里面设置fenc=gb18030也能达到这个效果

如何理解记忆这几个encoding?

  1. 如果是单纯的encoding, 则表示vim 这个软件 自己内部的编码方式

  2. 其他是三个 ????-encoding, 分别表示在不同情况 下的 编码

  3. 首先, 排除一个: fileencodings , 因为是加了 -s的 , 表示他是复数形式, 是多个编码的 集合 什么情况下才会用到多个编码呢, 很显然, 就是设置vim打开某个文件时 用来探测 测试的代码集.

  4. fileencoding, 自然就是当前正在编辑的文件使用/将要保存 时使用的编码方式

  5. termencoding, 就很明显了, 从编码名称也可以看出来 是在使用一些终端工具, 如secureCRt等登陆到linux进行vim操作时的编码.

上面提到了, 在设置fileencodings的时候, 要把utf-8放在最开始, 把 latin1 放在最后面结束的位置.

posted @ 2016-08-16 19:04  noitanym  阅读(302)  评论(0编辑  收藏  举报