`
javatgo
  • 浏览: 1127650 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[转载]设置vim的编码

 
阅读更多
~/.vimrc加入
set fencs=utf-8,gbk

这一行的作用是告诉 vim,打开一个文件时,尝试 utf8,gbk 两种编码,vim 只
需要扫描文件的前一段,就可以根据文件里面的数据判断出文件是否用的是
utf8 或者 gbk 编码。如果不指定这一行,则 vim 只会用当前编码 (locale)
来打开文件,因为你的 locale 是 UTF-8,而文件是 gbk,所以打开是乱码。

----------------------------------------------------------------------------------------------------

一般的,vim打开中文文件时会出现乱码,原因比较复杂,不罗嗦了。直接讲解决办法

set fileencoding=gb18030
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的了,:set fenc=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也能达到这个效果。

转载:http://lnote.blogbus.com/logs/8278174.html

分享到:
评论

相关推荐

    vim键盘图,用于练习vim编码技巧

    vim键盘的详细图片,可以平时当做桌面壁纸,忘记就拿出来看看

    vim设置20130906, 适合编程爱好者

    每个插件的目录下的conf.vim中有更多的设置及说明 "FuzzyFinder fuf.vim模糊查找 source ~/.vim/bundle/fuzzyfinder/conf.vim "NERD_commenter.vim source ~/.vim/bundle/nerdcommenter/conf.vim "单独切换打开...

    vim颜色设置

    vim颜色设置

    QtCreator vim 配置方案

    Qt Creator vim 配色方案,放到QT creator 安装文件夹下的style文件里。这个配色护眼,清楚

    VIM快捷键 VIM插件

    VIM快捷键 VIM快捷键 VIM插件 VIM快捷键 VIM插件

    vim样式设置工具

    该工具可以在Linux下设置vim的样式,如C代码的关键字颜色,段落缩进等。

    notepad++下vim插件

    notepad++下使用vim操作方式,由于notepad++下的插件管理中visimulator安装不了,所以可以离线安装。下载之后,放在notepad++安装目录的plugins中,重启notepad++即可。

    linux系统vim实验报告.doc

    关于文本编辑器 vim 的使用 【注】里面的内容和自己跟着敲敲,文件名字换成自己的,可以套用我的模板和前言结论,代码最好跟着敲敲,里面的操作步骤我也说的非常明白。 1.vi 的三种模式:编辑模式,命令模式,最后行...

    设置vim自动补全、大文件、编辑C++文件和html文件

    关于设置vim自动补全的方法和相应的plugin,以及打开大文件、编辑C++文件、编辑html文件、编辑javascript文件的plugin.

    vim设置取消下划线 set cursorline

    jeffy-vim 很强的一个vim插件及配置 但安装之后出现下划线,那就需要进行设置, 可以在shell终端输入命令:vi ~/.vimrc 然后找到set cursorline 那一行,直接通过dd命令删除掉,退出保存即可

    vim编码:vim编码

    编码程序猿的专属vimrc配置! 该vim配置拥有各种大气的被动和主动技能!! 一分钟极速安装(如果是windows,强烈推荐安装 ) curl ' https://gitee.com/lee1989/vim-for-coding/raw/master/install.sh ' | sh 极速...

    Linux系统攻略 Vim的编码及字体问题详解

    和所有的流行文本编辑器一样,Vim可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的Unicode编码方式。然而不幸的是,和很多来自 Linux世界的软件一样,这需要你自己动手设置。本文介绍了Vim四个跟...

    vim中文手册 vim中文手册 vim中文手册

    vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册vim中文手册vim中文手册

    转载vi/vim命令详解图片,可做为壁纸,多幅图片

    转载vi/vim命令详解图片,可做为壁纸,多幅图片。 vim是Linux下面最重要的编辑器了, 而对vim命令的学习是学好vim尤为重要,这张壁纸上面集中了vim的一些详细命令, 作为桌面背景,随时随地可以查看vim命令。

    经典vim插件设置

    本压缩文件包含了一些经典的vim插件,将vim全力打造成一个IDE。

    vim常用快捷键和配置设置

    vim常用快捷键和插件设置 包括vim中tab操作 vim中使用cscope nerdtree等。 其中一些好用但不常用的快捷键可以明显提高工作效率

    MyVim:设置vim和vim配置

    MyVim 设置vim和vim配置环境g++ (Ubuntu 9.3.0 -17ubuntu1~ 20.04 ) 9.3.0cmake version 3.16.3Python 3.8.5VIM - Vi IMproved 8.1 ( 2018 May 18 , compiled Apr 15 2020 06 : 40 : 31 )仅针对Linux1.建立文件在...

    Linux系统中vim设置tab键的宽度

    Linux系统中vim设置tab键的 宽度

    vim plugin vim changes to ide update

    add wintagexplorer.vim , echofunc.vim , vimrc

    Unbuntu vim设置

    linux ubuntu vim设置 vim安装 高亮 分屏调节 行号等

Global site tag (gtag.js) - Google Analytics