如何在vim中“自动”将euc kr转换为utf-8?
我知道如何像这样手动转换:map:e++enc=euc kr:set fenc=utf-8:w++enc=utf-8 但是,我想通过在.vimrc文件中写入条件语句来自动转换。 所以,我写了下面的代码,但它不起作用如何在vim中“自动”将euc kr转换为utf-8?,vim,Vim,我知道如何像这样手动转换:map:e++enc=euc kr:set fenc=utf-8:w++enc=utf-8 但是,我想通过在.vimrc文件中写入条件语句来自动转换。 所以,我写了下面的代码,但它不起作用 if ($fileencoding == "euc-kr") ++enc=euc-kr % set fenc=utf-8 endif 出了什么问题以及如何修复?有两个部分: 要允许Vim在:edit上自动检测编码,这样您就不需要指定+
if ($fileencoding == "euc-kr")
++enc=euc-kr %
set fenc=utf-8
endif
出了什么问题以及如何修复?有两个部分: 要允许Vim在:edit上自动检测编码,这样您就不需要指定++enc=euc kr,您必须调整“filencodings”的复数形式!选项,例如:
:set fileencodings=ucs-bom,utf-8,euc-kr
为了将编码保持为UTF-8,以下autocmd将为当前缓冲区调整“fileencoding”信号:
:autocmd BufWritePre * if &l:fileencoding ==# 'euc-kr' | setlocal fileencoding=utf-8 | endif
我不知道为什么,但对我来说,设置fileencodings=ucs bom、utf-8、euc kr和autocmd BufEnter*if&l:fileencoding=='euc kr'|设置本地fileencoding=utf-8 | endif有效。我在autocmd的末尾添加了write。如果您想在文件打开时自动转换,这很好。我的解决方案只会在第一次写入时触发转换。