`

vim编码

    博客分类:
  • os
阅读更多
~/.vimrc 配置
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,chinese,cp936,gb2312

查看vim编码,在命令模式输入
:set encoding
:set fileencoding 即可


Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。

Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下:
(1)encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义。
(2)fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。
(3)fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。
(4)ermencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

Vim 的多字符编码方式支持是如何工作的。
(1)Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。
(2)读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (注1) 字符编码方式。
(3)对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为 encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll (注2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。
(4)编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll

由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为 utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;) 。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示 cp936,也就是 GBK 的代码页)。
分享到:
评论

相关推荐

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

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

    QtCreator vim 配置方案

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

    linux系统vim实验报告.doc

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

    vim编码:vim编码

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

    解决linux下vim中文乱码的方法

    Vim编码的详细介绍 Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。 Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、...

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

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

    linux-vimdues一个为深夜编码更好的Vim配色方案

    vim-dues 一个为深夜编码更好的Vim配色方案

    vim7.2 for windows 包含增强插件

    vim对于广大的linux用户来说并不陌生,本人提供的是自己收藏的东东,包括简体中文帮助文档、vim文件类型关联脚本vim-reg.reg(在windows下的vim没有文件关联功能,因此在打开每个文件前都需要右键使用vim打开,很是...

    Vim 7.3 win版

    这是一个国际版本,会根据安装的平台自动选择相应语言包,支持中文及其各种编码,连界面也是中文的,请放心使用。这个极具Unix特色和风格(simple is the best)的编辑器相信会给您带来不同的感受。

    vim user manual ---vim用户手册

    jusr 02.txtj Vim第一步 jusr 03.txtj 移动 jusr 04.txtj 小幅改动 jusr 05.txtj 定制你的Vim jusr 06.txtj 使用语法高亮 jusr 07.txtj 编辑多个文件 jusr 08.txtj 分隔窗口 jusr 09.txtj 使用GUI jusr 10.txtj ...

    vim超级配置

    +-- 10 lines: 字符编码(多字节)------------------------------------------------------------------------------- +-- 12 lines: 设置C/C++语言的具体缩进方式 eg. switch case 缩进------------------------...

    神一般的编译器 Vim v7.2

    这是一个国际版本,会根据安装的平台自动选择相应语言包,支持中文及其各种编码,连界面也是中文的,请放心使用。这个极具Unix特色和风格(simple is the best)的编辑器相信会给您带来不同的感受。

    Vim中文件编码处理与重新打开乱码文件详解

    Vim 中有两个与编码有关的变量,如果理解了基本就不会再为编码问题头疼了。 encoding :Vim 内部编码,例如 buffer、寄存器、文本等。这个值一般用户不要设置,另外打开 Vim 之后再设置这个值也是没有意义的。大家...

    vim-pythonx:Python库可简化Vim中的编码

    Python库,用于更智能的Vim编码 安装 只需使用添加插件: Plug ' reconquest/vim-pythonx ' 在片段文件中导入所需的py模块(例如,在go.snippets ): global !p import px.langs.go endglobal PHP 高朗 。

    windows版本VIM8

    gVim是著名文本编辑器的windows版本,标准的windows风格的图形界面,会根据安装的平台自动选择相应语言包,支持中文及其各种编码,连界面也是中文的,请放心使用。 软件官网: http://www.vim.org/ 新版特征 更新了...

    linux 下 vim 配置

    vim 是和很好的编辑工具,通过简单的配置,可以很好的适应C/C++ 的编码习惯,只需将 该配置文件 替换到 linux 跟目录下 :/etc/vimrc 替换成该文件即可,很好用的,完全个人实践,,,

    vim-starter-kit:准备好Vim进行真正的编码

    #Vim入门套件使用Vim入门工具包,在一分钟内即可为Vim准备好进行真正的编码。 无论您是刚刚开始Vim之旅还是已经有一段时间了,此入门套件都可以为您节省大量的配置时间,以将Vim设置为真正的编码环境。 每个软件包...

    vim-base64:Vim插件来对base64字符串进行编码

    Vim Base64 在Linux上使用base64在Windows上使用Python编码/解码base64字符串 注意:在此视频中, atob和btoa颠倒了!安装先决条件在Linux上,您需要安装来自coreutils base64 。 在Windows上,您需要 。旺德尔使用...

    vim配置文件(.vimrc配置和.vim插件目录)

    1. 自动提醒,已定义或声明过的变量和函数使用提醒 2. 自动缩进 3. 状态栏显示:文件编码,文件类型,当前位置,时间等

Global site tag (gtag.js) - Google Analytics