打开该类型的文件时是否可以自动设置UTF16文件编码?

Ben*_*enj 22 vim

我用Vim编辑各种文件(因为我确信大多数Vim用户都这样做).我遇到的一个错误就是Vim在遇到带有奇数编码的文件时所做的事情.大多数编辑(这些天)在检测文件编码方面做得很好.但是,Vim通常不会.你必须键入,例如:

:e ++enc=utf-16le
Run Code Online (Sandbox Code Playgroud)

以UTF-16重新读取文件(否则你会获得大量的@符号)

我一直在搜索并看过set_utf8.vim可以检测特定文件编码的脚本.但是,有更一般的解决方案吗?我有点无聊,必须手动计算文件编码是什么,并在每次打开一个不寻常的文件时咨询帮助.

Ing*_*kat 15

添加编码名称'fileencodings'应该可以解决问题:

:set fencs=ucs-bom,utf-16le,utf-8,default,latin1
Run Code Online (Sandbox Code Playgroud)

或者,有AutoFenc和fencview等插件.

  • 在 Mac OSX Catalina 上,使用“VIM - Vi IMproved 8.1 macOS 版本”添加此命令会导致所有 UTF-8 文件作为 UTF-16 LE 打开 (2认同)

net*_*ter 5

将此代码添加到您的.vimrc:

if has("multi_byte")
  if &termencoding == ""
    let &termencoding = &encoding
  endif
  set encoding=utf-8
  setglobal fileencoding=utf-8
  "setglobal bomb
  set fileencodings=ucs-bom,utf-8,latin1
endif
Run Code Online (Sandbox Code Playgroud)