vim使用@ -signs

时间:2016-12-16 14:20:15

标签: windows file powershell vim encoding

我使用vim打开文件event.txt并向我展示一些搜索结果。这工作正常,但由于我在_vimrc中进行了更改,因此显示文件内容为@ - 符号使其无法读取。见下图。 event.txt with @-signs 我在_vimrc中所做的改变是

set fileencoding=utf-8

但我对此发表了评论。所以它不应该影响vim。

"set fileencoding=utf-8

文件仍然显示不可读。使用其他编辑器,我可以打开文件并正常查看。我不久前有这种行为,但我不知何故消失了。我无法记住。

event.txt文件是我通过powershell生成的Windows事件文件:

get-eventlog -logname system > event.txt

有些东西告诉我它不是_vimrc中的变化,也许是其他东西,但这是我记得的最后一次变化,之后它没有用。

如何在vim中查看Windows事件文件event.txt?没有@ - 标志。

1 个答案:

答案 0 :(得分:2)

开头的^@字节顺序标记(BOM),典型的Windows Unicode 文本。 :edit ++enc=ucs2-le event.txt 是Vim表示的NUL值,它(粗略地)显示为每隔一个字符。所以,你有一个(大部分)ASCII文本文件,用UCS-2小端编码:每个字符由两个字节(16位)表示,低位字节首先表示。

您可以使用

打开该文件
:set encoding=utf-8

但最好正确设置Vim,以便自动检测它。由于您在Windows上使用GVIM,我建议使用

~/.vimrc

在您'fileencodings'的开头。这会自动将您的ucs-bom,utf-8,default,latin1设置为'fileencoding'的良好默认值。注意第一个元素;这应该有助于检测文件。

请勿在{{1​​}}中设置~/.vimrc这是缓冲区本地设置,它将由Vim自动设置打开文件。 'fileencodings'(注意复数)是影响检测的正确选项。