echo "UTF-16le text"|vim -
:set encoding=utf-16le
:set fileencoding=utf-16le
:e! ++enc=utf-16le
对屏幕上显示的mojibake完全没有影响。虽然最后一个(:e! ++enc=utf-16le
)导致错误E32: No file name
。
如果我将~/.vimrc
编辑为set fileencodings=utf-16le,[...]
,那么它可以正常工作,但每次使用vim时我都不必编辑配置文件,是否有更好的方法?优选地,密钥代码将在:set fileencodings
之间循环,这样我可以根据需要快速选择。
答案 0 :(得分:0)
等效于~/.vimrc
的命令行通过--cmd
传递命令。您还可以使用:help :set^=
命令在选项前添加值:
echo "UTF-16le text"|vim --cmd 'set fencs^=utf-16le' -
我每次使用vim都不必编辑配置文件
首先,我将测试将utf-16le
永久保留在'fileencodings'
中是否会对您定期编辑的任何文件产生负面影响;也许您可以安全地默认保留它。
第二,有AutoFenc这样的插件可以扩展内置检测,而fencview这样的插件可以让您从菜单中选择编码。
UTF-16编码问题是众所周知的,字节顺序标记是一种易于检测的解决方案。有了这样的BOM,Vim可以开箱即用地正确检测编码。如果您输入的内容缺少BOM表,则可以手动添加它:
{ printf '\xFF\xFE'; echo "UTF-16le text"; } | vim -