我在Windows上使用vim
和gVim
,在虚拟Linux框中使用vim
进行编程。我经常需要更改gettext
目录文件。但是,在两个Windows版本中对Unicode字符的支持似乎都不完整,可能是因为字符集。
例如,变音符号(äöü
)工作得很好;但印刷引号(“”或“ˮ”)和其他一些字符(如mdash和ellipse)不会(它们在Linux框中执行)。 Vim抱怨转换错误并以只读模式打开文件;当覆盖它并存储时,这些角色都会被破坏。
其他Windows程序支持这些字符就好了,例如TortoiseSVN的。
请注意,这不是“错误的编码问题,例如latin-1
而不是utf-8
,因为这也会影响变音符号。我知道设置enc
,fenc
,fencs
和:e ++enc=utf-8
。
:version
告诉我:版本7.3,MS Windows 32位GUI版本,支持OLE,包括更正1-46; +multi_byte_ime/dyn
。
更新:更新到Vim 7.4无法解决问题。 +multi_byte_ime/dyn
并且,因为现在可以更容易地列出选项:+digraphs
,-xfontset
,-postscript
(我不知道他们是否感兴趣)。
由于我使用Linux Vim处理相同的文件(仍然是7.3,包括更正1-547),并且通过Samba,现在更新的Windows gVim,我尝试了以下内容:我打开了一个带有Linux版本的目录文件,用来做有趣的引用字符(:set enc? fenc?
→encoding=utf-8
,fileencoding=utf-8
)并将其保存为Latin-1(:set fenc=latin-1
(文件标记已更改),更新了标记,:w
)。我收到了转换错误;但是,已经写了一些变化。
当使用相同的Linux版本重新打开文件时,我得到了正确的变音符号encoding=utf-8
/ fileencoding=latin-1
,但报价字符不正确。
答案 0 :(得分:7)
在阅读问题How to view UTF-8 Characters in VIM or Gvim之后,我尝试了几个guifont
- 设置(:set guifont?
没有产生任何结果),其中一些设置了印刷报价。
以下guifont
设置适用于我的Windows 8.1系统:
guifontwide
我找到了
为汉字工作。
答案 1 :(得分:1)
我能够在Windows上始终如一地将文件编码更改为UTF-8的唯一方法是使用notepad ++或powershell(见下文)。无论VIM版本如何,从VIM内部更改文件编码都会产生不一致的结果。
一旦文件在vim之外设置了UTF-8编码,就没有其他问题了。通过windows或Windows支持通过vim在linux或mac上设置的文件编码。
在this thread的powershell命令中建议更改编码。这是我所知道的在windoww上将项目设置为UTF-8并且没有进一步麻烦的最快方式。
在上面的示例中,并非:set encoding=utf-8
(暂时且仅在您的显示中)和set fileencoding=utf-8
之间存在差异,这将在保存时更改文件。