根据网上搜索的结果: vimrc中增加如下设置 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set fileencoding=utf-8 set termencoding=utf-8 set encoding=utf-8
fileencodings 表示vim尝试从fileencodings中的编码格式找到一个正确的去打开文件, 打开文件后,正确的编码格式会更新到fileencoding中。如果是创建新文件,以fileencoding的格式保存。()
所以比如打开一个iso-8859格式的文件, vim打开不乱码,但是fileencoding的utf-8被冲掉了,导致保存的时候没有以utf-8格式保存。
网上讲的都是手动的改动方法, 有用,但是需要在命令状态下输入set fileencoding=utf-8,然后保存。 如果有大量的需求,每个文件都要输入一条命令再保存,效率太低。
不清楚是否有更有效的方法处理这个问题?
暂时利用vim的event, 当有insert事件触发时, 自动将fileencoding的值设置为utf-8, 保存事件肯定在insert之后, 所以保存时就无需再手动设定fileencoding了。不编辑文件时维持原有格式,编辑时再保存就改为了utf-8格式。 如下 在 .vimrc中增加一行
autocmd InsertEnter * : set fileencoding=utf-8