Linux 不同的表演;猫;及;vim";

Linux 不同的表演;猫;及;vim";,linux,shell,vim,cat,Linux,Shell,Vim,Cat,cat/tmp/test: >> cat /tmp/test Hello World Hello World Hello World Hello World >> 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/test: >> ca

cat/tmp/test

>> cat /tmp/test
Hello World
Hello World
Hello World
Hello World
>> 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/test

>> cat /tmp/test
Hello World
Hello World
Hello World
Hello World
>> 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/test
显示与
cat/tmp/test
相同的内容

你能帮我一下吗?谢谢。

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

要去除转义字符,您可以手动删除它们,也可以使用sed之类的工具将其过滤掉。

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


若要删除转义字符,您可以手动删除它们,也可以使用sed之类的工具将其过滤掉。

若要查看生成的输出,如shell中所示,您可能需要使用插件。打开带有此类转义码的文件后,您应该运行
:AnsiEsc
,它将突出显示。

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

感谢您的回复。如果我在控制台上用颜色显示一些消息,并重定向到一个文件,那么它是通过“cat文件”以原始格式显示消息的唯一方法吗?这是在终端中查看文件时想到的唯一方法,但中提到的程序可以将文件转换为HTML、RTF、,或者其他支持彩色文本的标准格式。如果您只是使用vim查看另一个命令的输出,我是否可以大胆地建议使用
less-R
?这将少用一个寻呼机,允许您捕获输出和向后/向前翻页,并使用
-R
标志显示ANSI颜色序列(您看到的额外字符),感谢您的回复。如果我在控制台上用颜色显示一些消息,并重定向到一个文件,那么它是通过“cat文件”以原始格式显示消息的唯一方法吗?这是在终端中查看文件时想到的唯一方法,但中提到的程序可以将文件转换为HTML、RTF、,或者其他支持彩色文本的标准格式。如果您只是使用vim查看另一个命令的输出,我是否可以大胆地建议使用
less-R
?这将较少地用作寻呼机,允许您捕获输出和向后/向前翻页,并使用
-R
标志显示ANSI颜色序列(您看到的额外字符)您必须告诉输出该文件的程序不要使用颜色。这是一个糟糕的问题。您必须告诉输出该文件的程序不要使用颜色。这是一个糟糕的问题。