Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows vim显示带有@符号的文件内容_Windows_File_Powershell_Vim_Encoding - Fatal编程技术网

Windows 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

我使用vim打开一个文件
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
工作正常。谢谢以及详细的解释。