Windows vim显示带有@符号的文件内容
我使用vim打开一个文件Windows vim显示带有@符号的文件内容,windows,file,powershell,vim,encoding,Windows,File,Powershell,Vim,Encoding,我使用vim打开一个文件event.txt,并显示一些搜索结果。这很好,但是由于我在vimrc中做了一个更改,它显示了带有@-符号的文件内容,因此无法读取。见下图。 我在vimrc中所做的更改是 set fileencoding=utf-8 但是我评论了一下。因此,它不应影响vim "set fileencoding=utf-8 该文件仍显示为不可读。使用其他编辑器,我可以打开文件并正常查看它。不久前我有过这种行为,但不知怎么的我消失了。我不记得了 event.txt文件是我通过powers
event.txt
,并显示一些搜索结果。这很好,但是由于我在vimrc中做了一个更改,它显示了带有@
-符号的文件内容,因此无法读取。见下图。
我在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
?没有@
-符号 开头的ÿþ
是一个字节顺序标记(BOM),通常用于Windows Unicode文本。^@
是Vim对NUL值的表示,它(大致)每秒钟显示一个字符。因此,您有一个(大部分)ASCII文本文件,用UCS-2 little-endian编码:每个字符由两个字节(16位)表示,较低的一个先出现
您可以使用打开该文件
:edit ++enc=ucs2-le event.txt
但最好正确设置Vim,以便它自动检测到它。由于您正在Windows上使用GVIM,我建议您
:set encoding=utf-8
在~/.vimrc
的开始处。这将自动将您的'fileencodings'
设置为ucs bom、utf-8、default、latin1的良好默认值。注意第一个元素;这将有助于检测文件
不要在~/.vimrc
中设置'fileencoding'
这是一个缓冲区本地设置,Vim将在打开文件时自动设置。'fileencodings'
(注意复数)是影响检测的正确选项。:set encoding=utf-8
工作正常。谢谢以及详细的解释。