vim对于文件的编解码有三个参数,分别是encoding、fileencoding,fileencodings,下面说的应该可以解决绝大多数的问题了。
1、支持中文编码的基础
要更好地支持中文编码需要两个特性:+multi_byte和+iconv,可以用|:version|命令检查当前使用的Vim是否支持,否则的话需要重新编译。
2、影响中文编码的设置项
Vim中有几个选项会影响对多字节编码的支持:
encoding(enc):encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer、消息文字等。在Unix环境下,encoding的默认设置等于locale;Windows环境下会和当前代码页相同。在中文Windows环境下encoding的默认设置是cp936(GBK)。
fileencodings(fencs):Vim在打开文件时会根据fileencodings选项来识别文件编码,fileencodings可以同时设置多个编码,Vim会根据设置的顺序来猜测所打开文件的编码。
fileencoding(fenc):Vim在保存新建文件时会根据fileencoding的设置编码来保存。如果是打开已有文件,Vim会根据打开文件时所识别的编码来保存,除非在保存时重新设置fileencoding。
termencodings(tenc):在终端环境下使用Vim时,通过termencoding项来告诉Vim终端所使用的编码。
termencodings(tenc):在终端环境下使用Vim时,通过termencoding项来告诉Vim终端所使用的编码。
3、Vim中的编码转换
Vim内部使用iconv库进行编码转换,如果这几个选项所设置的编码不一致,Vim就有可能会转换编码。打开已有文件时会从文件编码转换到encoding所设置的编码;保存文件时会从encoding设置的编码转换到fileencoding对应的编码。经常会看到Vim提示[已转换],这是表明Vim内部作了编码转换。终端环境下使用Vim,会从termencoding设置的编码转换到encoding设置的编码。
可以用|:help encoding-values|列出Vim支持的所有编码。
4、具体应用环境的设置
只编辑GBK编码的文件
set fileencodings=cp936
set fileencoding=cp936
set encoding=cp936
只编辑UTF-8编码的中文文件
set fileencodings=utf-8
set fileencoding=utf-8
set encoding=cp936 或者 set encoding=utf-8
同时支持GBK和UTF-8编码
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8
set encoding=cp936 或者 set encoding=utf-8
如果在终端环境下使用Vim,需要设置termencoding和终端所使用的编码一致。例如:
set termencoding=cp936 或者 set termencoding=utf-8
Windows记事本编辑UTF-8编码文件时会在文件头上加上三个字节的BOM:EFBBBF。如果fileencodings中设置ucs-bom的目的就是为了能够兼容用记事本编辑的文件,不需要的话可以去掉。Vim在保存UTF-8编码的文件时会去掉BOM。去掉BOM的最大好处是在Unix下能够使用cat a b>c来正确合并文件,这点经常被忽略。
5、FAQ
为什么在Vim中一次只能删除半个汉字?
因为encoding设置错误,把encoding设置为cp936就可以解决此问题。在Unix环境下Vim会根据locale来设置默认的encoding,如果没有正确设置locale并且没有设置encoding就会一次只能删除半个汉字。
VIM为什么不能输入繁体字?
把euc-cn或者GB2312改为cp936就可以了。euc-cn是GB2312的别名,不支持繁体汉字。cp936是GBK的别名,是GB2312的超集,可以支持繁体汉字。
VIM为什么提示不能转换?
因为在编译Vim时没有加入iconv选项,重新编译Vim才能解决。
如何打开一个GBK编码的文件并另存为UTf-8编码?
保存文件时运行命令|:set fileencoding=utf-8|就可以了。
另可参考http://blog.163.com/sea_haitao/blog/static/7756216200942552859673/
- 浏览: 159339 次
- 性别:
- 来自: 南京
最新评论
-
弹指一世界:
感谢博主分享,但是我把项目下载下来放本地运行报了一个错误Exc ...
php phalcon项目实战 -
xialluyouyue:
...
php xmlrpc的简单实用
相关推荐
vim配置文件vim配置文件vim配置文件
vim配置文件 vimrc vim配置文件 vimrc vim配置文件 vimrc
强大的vim配置文件,强大的vim配置文件强大的vim配置文件强大的vim配置文件强大的vim配置文件
vim配置文件,vim配置文件
该配置文件包含了设置行号、Tab...具体说明可以参考我的文章《【Linux成长之路基础篇:玩转vim(vi)编辑器】三大模式及命令介绍、如何通过配置文件.vimrc配置vim》第三章《三、vim配置文件.vimrc》里面有详细的介绍。
Vim 配置文件。 支持ctags/cscope的配置。可以动态的进行代码的跳转高亮等
自己的vim配置文件目录备份,包括git版本修改记录。使用方法,linux系统:解压后,运行INSTALL。Windows系统:解压后自行替换对应配置文件及目录。
vim的资源文件,解压后,将其中的.vim文件夹放入到你的/Home目录下,里面一般的vim插件都有了,如还想要其他的可以下载对应的vim插件,放入.vim/plugin文件夹下面,doc文件放入.vim/doc文件夹下面 vim的效果 ...
强大的vim配置文件,可同时适用于linux和windows下的vim配置。 涵盖了所有主流插件的配置,常见的显示设置,编译命令的映射。 插件: ctags 代码跟踪 taglist 类视图 winmanager 文件视图 minibuffer 显示多文件...
.vimrc 文件 vim配置文件 字体、颜色 各类插件 ------------ 具体配置步骤找寻相关博客 仅供参考
vim 配置文件,用于备份,目前还不完善,后期还需要更新。
这是我自己的vim配置文件,包括winmanager、ctags、taglist、nerdtree等插件,功能非常强大,欢迎使用,详细使用介绍http://blog.csdn.net/nersie/article/details/24740155
vim编辑器配置文件, 非常强大的vim开发环境配置,解压后将文件修改为_vimrc
1、该文件是csnd上被称为最新最强的配置文件上进行改进的。 2、原配置在编程中有如下缺点:小括号无法自动完成匹配;双引号和单引号无法跳出。 3、新配置加入了最新的auto-pairs插件,成功的解决了原版本的括号和...
vim配置文件.vimrc完美配置
vim配置文件及cscope和ctag文件.
Vim文件编辑命令
vim编译器好用, 使用, 最为经典的配置文件
vim配置文件