vim中的符号

icomxhvb  于 2023-05-07  发布在  其他
关注(0)|答案(3)|浏览(177)

当我在vim中查看我的文件时,会显示以下符号。

---<snip>----
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@fstalone
---<snip>-----

我创建的文件是通过重定向我的实用程序的stdoutstderr,如下所示:#./my_util > util.log 2>&1。此文件往往会变得非常大(~4 MB)
1.这个符号是什么
1.如何摆脱它?

wtzytmuj

wtzytmuj1#

这就是null character,其格式称为caret notation(您可能已经注意到,Vim经常使用这种格式)。基本上,不知何故,你会在文件中得到充满零的字节。
由于我们不知道您的实用程序在做什么,如果它是罪魁祸首,如果您希望我们提供帮助,您需要向我们展示一些代码。否则,如果您只想从文件中删除字符,请使用替换:

%s/<Ctrl-V><Ctrl-J>//g

Ctrl-V标记转义序列的开始。在按下Ctrl-J之后,您应该看到^@出现在您的命令中。因此,正如您所猜测的,Ctrl-V, Ctrl-J是空字符的一个转义序列。

yshpjwxd

yshpjwxd2#

以上都不适合我。我有一个文件,在某些行的末尾有'^@',我想替换它。我设法通过使用以下命令搜索“[\x0]”来替换它:

%s/[\x0]//g

我希望它能为某人节省一个小时的生命。这里有一个解释,我会回去读,当我不那么忙碌:A discussion with a better explanation

55ooxyrt

55ooxyrt3#

当你尝试在vim中打开一个非文本文件时,^@会出现。例如,如果您打开一个exe文件或图像文件,则会显示^@,这是一个不可读的字符。尝试在其他编辑器中打开该文件并查看结果

相关问题