每日一Vim(20)Vim 编码设置
Vim的编码选项
vim编码涉及四个概念,分别是enc,fenc,fencs,tenc
,一般乱码多是因这些参数设置不正确引起的,要想彻底摆脱vim的乱码问题,还是把这四个概念理清楚了,下面详细介绍之。
enc(encoding)
enc
的全称为encoding
,这是Vim内部使用的编码,如buffer,寄存器中的字符串。在Vim打开文本后,如果它的编码方式与它的内部编码不一致,Vim会先把编码转换成内部编码,如果它用的编码中含有没法转换为内部编码的字符,那么这些字符就会丢失掉。默认值是系统的locale来决定的,比如在windows下一般就是gbk或gb2312的,而在linux下就是utf-8。可以用命令:set enc
查看当前vim的enc是什么值,笔者的windows显示的是cp936
这里的cp936其实相当于gb2312,指系统的第936号编码格式。
fenc(fileencoding)
fenc为当前缓冲区(当前Vim打开这个文件)文件自身的编码,从磁盘读文件时,Vim会对文件编码检查,如果文件的编码与Vim内部编码(enc)不同,Vim就会对文本做编码转换,将fenc设置为文件的编码。Vim写文件到磁盘时,如果enc与fenc不一样,Vim就做编码转换,转换成编码fenc保存文件。在windows下你可以借由notepad++等编辑器检查文件是什么编码的。由于fenc是在打开文件时由Vim自动检测的,所以如果文章中有乱码也没法通过重新设置fenc来纠正,设置fenc只能改变文本的编码格式。
fencs(fileencodings)
这是一个字符编码的列表,编码的自动识别就是通过设置fencs实现的。当打开一个文件时,Vim会按照fencs中编码的顺序进行解码操作,如果匹配成功就用该编码来进行解码,并把这种编码设为fenc的值。这里的匹配成功指的是Vim能正确解码,不会出错,但是不保证没有乱码,所以fencs编码列表的顺序设置很关键,由于lanin1是iso8859-1,属于国际化的标准编码,他能表示任何字符,也就用于也不会出错,但是我们看到的可以是“乱码”。 所以一般fencs设置的顺序是这样子的:lan1放到最后面
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
tenc(termencoding)
终端使用文本编码,或者说是Vim用于屏幕显示时的编码,显示的时候Vim会把内部编码转换为屏幕编码再输出,也就是说我们从屏幕上看到的字符都是tenc编码的字符,如果为空,默认就是enc。windows平台Gvim会忽略掉tenc。一般就是从一个终端远程登陆到linux系统时候tenc会起作用。
乱码问题
如果碰到了乱码问题,只要你把enc,fenc统一设成utf-8问题都会解决了。下面这段配置就是我的Vimrc文件的关于解决乱码配置的代码段:
" 设置vim内部编码格式
set encoding=utf-8
" 解决windows下如果encoding设置utf-8,菜单会乱码问题
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"默认文件编码
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
参考:http://edyfox.codecarver.org/html/vim_fileencodings_detection.html
转载请注明出处,谢谢合作!作者---zhijun
相关推荐
每个插件的目录下的conf.vim中有更多的设置及说明 "FuzzyFinder fuf.vim模糊查找 source ~/.vim/bundle/fuzzyfinder/conf.vim "NERD_commenter.vim source ~/.vim/bundle/nerdcommenter/conf.vim "单独切换打开...
vim键盘的详细图片,可以平时当做桌面壁纸,忘记就拿出来看看
VIM快捷键 VIM快捷键 VIM插件 VIM快捷键 VIM插件
jeffy-vim 很强的一个vim插件及配置 但安装之后出现下划线,那就需要进行设置, 可以在shell终端输入命令:vi ~/.vimrc 然后找到set cursorline 那一行,直接通过dd命令删除掉,退出保存即可
vim颜色设置
使用 Vim 更多的是一种技能而 不是一种知识,Vim 的学习更需要的不是头脑而是双手,经常按书中的指示 进行示例性的操作,在学习 Vim 众多精致的技巧时,不要贪图一下子全都 掌握,最好是看一条技巧后,马上在编辑器...
Linux系统中vim设置tab键的 宽度
vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册 vim中文手册vim中文手册vim中文手册
该工具可以在Linux下设置vim的样式,如C代码的关键字颜色,段落缩进等。
add wintagexplorer.vim , echofunc.vim , vimrc
vim是一款功能丰富而强大的文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中得到非常广泛的使用。vim能够大大提高程序员的工作效率。对于vim高手来说,vim能以与思考同步的速度编辑文本...
本压缩文件包含了一些经典的vim插件,将vim全力打造成一个IDE。
讲述 vim 编辑器的几十个实用上手技巧
vim-dues 一个为深夜编码更好的Vim配色方案
cp molokai.vim /usr/share/vim/vim73/colors cp /etc/vim/vimrc /etc/vim/vimrc.bak cp vimrc /etc/vim/vimrc
自用的vim做php开发的配置,集成ctags,javascript格式化,php代码补全,NERDTree,TAB补全...等一系列有用插件集成
Mastering Vim: Build a software development environment with Vim and Neovim By 作者: Ruslan Osipov ISBN-10 书号: 1789341094 ISBN-13 书号: 9781789341096 出版日期: 2018-11-30 pages 页数: (330) Vim is ...
vim配置 vim 配置 整理出来大家一起学习
ubuntu离线安装vim