我如何用vim更改文件的编码?
我习惯于使用vim来修改文件的行结尾:
$ file file file: ASCII text, with CRLF line terminators $ vim file :set ff=mac :wq $ file file file: ASCII text, with CR line terminators
是否有可能使用类似的过程来更改文件的Unicode编码? 我正在尝试以下,这是行不通的:
$ file file.xml file.xml: Unicode text, UTF-16, little-endian $ vim file :set encoding=utf-8 :wq $ file file.xml file.xml: Unicode text, UTF-16, little-endian
我看到有人说他可以“设置fileencoding = UTF-8,然后更新和写入文件,它的工作原理”,但我似乎失去了一些东西,否则他感到困惑。 我不知道他是什么意思,然后“更新”。
从文档 :
:write ++ enc = utf-8 russian.txt
所以你应该能够改变编码作为写命令的一部分。
请注意,有一个区别
set encoding
和
set fileencoding
在第一种情况下,您将更改terminal中显示的输出编码。 在第二种情况下,您将更改写入的文件的输出编码。
使用vim来做这件事是完全可能的,为什么不简单地使用iconv呢? 我的意思是 – 加载文本编辑器只是做编码转换,似乎使用太大的锤子太小的指甲。
只是:
iconv -f utf-16 -t utf-8 file.xml > file.utf8.xml
你完成了。
就像你的步骤,设置fileencoding应该工作。 不过,我想添加一个“set bomb”来帮助编辑将文件视为UTF8。
$ vim file :set bomb :set fileencoding=utf-8 :wq
在读取文件之前,在命令行上更改编码可能很有用:
rem On MicroSoft Windows vim --cmd "set encoding=utf-8" file.ext # In *nix shell vim --cmd 'set encoding=utf-8' file.ext
请参阅开始 --cmd
。