“猫”和“vim”之间的不同表现

时间:2013-08-29 02:17:22

标签: linux shell vim cat

cat /tmp/test

>> cat /tmp/test
Hello World
Hello World
Hello World
Hello World

vim /tmp/test

>> vim /tmp/test
==>
1 ^[[1;31mHello World^[[0m
2 ^[[2;32mHello World^[[0m
3 ^[[5;33mHello World^[[0m
4 ^[[6;34mHello World^[[0m

抱歉,我已谷歌了,但我仍然不知道如何让vim /tmp/testcat /tmp/test显示相同内容。

你可以帮我一把吗?感谢。

2 个答案:

答案 0 :(得分:3)

如果你问为什么“垃圾”字符出现在Vim中每行的开头和结尾而不是cat中,原因可能是它们正在格式化shell用来为文本着色的转义序列。由于cat将其输出直接发送到shell,因此转义序列被解释为格式化命令,从而生成彩色文本。 Vim不是为了使用这些格式化序列而设计的,因此它只是将它们显示为文本的一部分。

要删除转义字符,您可以手动删除它们,也可以使用像sed这样的工具将其过滤掉as outlined here

答案 1 :(得分:0)

要查看生成的输出,就像它显示在shell中一样,您可能需要使用AnsiEsc插件。使用此类转义码打开文件后,您应该运行:AnsiEsc并突出显示。