Is it possible to automatically set UTF16 file encoding when opening a file of that type?

前端 未结 3 1255
南笙
南笙 2020-12-24 12:30

I edit all kinds of files with Vim (as I\'m sure most Vim users do). One bug bear I have is what Vim does when I come across a file with an odd encoding. Most editors (the

相关标签:
3条回答
  • 2020-12-24 13:08

    Adding the encoding name to 'fileencodings' should do the trick:

    :set fencs=ucs-bom,utf-16le,utf-8,default,latin1
    

    Alternatively, there are plugins like AutoFenc and fencview.

    0 讨论(0)
  • Do you have a byte-order-mark ? Vim should detect this and work appropriately. From the doc - section 45.4:

    When you start editing that 16-bit Unicode file, and it has a BOM, Vim will detect this and convert the file to utf-8 when reading it. The 'fileencoding' option (without s at the end) is set to the detected value. In this case it is "utf-16le". That means it's Unicode, 16-bit and little-endian. This file format is common on MS-Windows (e.g., for registry files).

    0 讨论(0)
  • 2020-12-24 13:19

    Add this code to your .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
    
    0 讨论(0)
提交回复
热议问题