Vim和Neovim设置文件编码自动识别

今天在打开同学的论文时发现乱码,这显然是由于他的LaTeX文件是在Windows下编辑的,默认编码为GBK编码,于是需要配置vim和neovim来自动转换编码到UTF-8才行。处理方法为:

~/.vimrc
1
2
3
4
5
6
7
8
" 设置编码为utf-8
set encoding=utf-8
" 如下设置,则无论所打开的文件是否为utf-8编码,保存时都强制保存为utf-8
"set fenc=utf-8
" 设置多编码文件
set fileencodings=utf-8,gbk,cp936,gb18030,big5,euc-jp,euc-kr,latin1,ucs-bom,ucs
" 设置终端显示编码为utf-8
set termencoding=utf-8
~/.config/nvim/lua/lsp/base.lua
1
2
3
4
5
6
-- 设置编码为UTF-8
vim.o.encoding = "utf-8"
-- 如下设置,则无论所打开的文件是否为utf-8编码,保存时都强制保存为utf-8
-- vim.o.fenc=UTF-8
-- 设置多编码文件
vim.o.fileencodings = "utf-8,gbk,big5,cp936,gb18030,euc-jp,euc-kr,latin1,ucs-bom,ucs "

由于neovim取消了对termencoding的支持,所以在neovim的配置中去除了这一项。详情参考commit-abaabd1d0