在vim中如果需要查看文件的编码格式,只需要在底行模式
下输入指令:
set fileencoding
如果想设置vim配置,让它打开文件时,都以某一种格式打开,则需要修改vim的配置文件。
在 vim 中,有四个与编码有关的选项,它们是:encoding
、fileencoding
、fileencodings
和 termencoding
。
encoding
是vim内部使用的字符编码方式。当我们设置了encoding
之后,vim内部所有的 buffer、寄存器、脚本中的字符串等,全都使用这个编码。一般我们将它设置为utf8。
fileencoding
vim 中当前编辑的文件的字符编码方式,vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。我在设置时,没有设置它,让文件以自己的格式保存。
fileencodings
编码的自动识别是通过设置 fileencodings
实现的,它是一个用逗号分隔的列表,列表中的每一项是一种编码的名称,后面可以跟多个格式,在打开文件时,vim会根据设置的顺序来自动推测文件的格式。如果没有找到合适的编码,就用latin-1(ASCII)编码打开。
termencoding
是vim用于屏幕显示的编码,在显示的时候,vim会把内部编码转换为屏幕编码,再用于输出。内部编码中含有无法转换为屏幕编码的字符时,该字符会变成问号,但不会影响对它的编辑操作。如果termencoding
没有设置,则直接使用 encoding
不进行转换。
普通用户对应的配置文件为~/.vimrc,打开它,在里面添加语句:
set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
如果想在打开文件时,直接设置文件的打开格式,可以在命令行
输入下面指令:
vim a.txt -c "e ++enc=utf8"
如果在打开文件后想修改文件的编码格式,只需要在底行模式
下输入命令:
set fileencoding=utf-8
如果在打开文件后想查看文件格式,则需要在底行模式
下输入命令:
set fileformat?
如果在打开文件后想设置文件格式为 unix,则需要在底行模式
下输入命令:
set fileformat=unix