VIM Unix命令以彩色打印

时间:2011-05-25 15:02:07

标签: vim ansi macvim

我正在使用MacVim,我希望!命令以彩色打印。例如:

在bash中,以下echo语句以绿色打印Hello World(按预期方式):

$ echo -e "\033[32m Hello World" 
 Hello World

但是,在VIM中输出不是彩色,并且打印转义码:

:!echo -e "\033[32m Hello World" 
 [32m Hello World

如何使用VIM(特别是MacVim build 57)打印!命令的输出并遵守ANSI颜色转义。

5 个答案:

答案 0 :(得分:4)

你做不到。但是你可以暂停编辑器并相对快速地转到shell;

或者您可以使用 Ansi Filter 删除转义序列,这样您至少不会看到一团糟。

答案 1 :(得分:3)

这一个:

:!echo $(tput setaf 1)Hello world$(tput sgr0)

将以彩色打印Hello world

不要使用转义序列,而是命名tput条目。 (所有时间,不仅在这个例子中)。阅读:
男人teminfo;男子infocmp; man tput - 欲了解更多信息。

基于评论,我发现这个问题非常有趣。

仍在寻找更好的解决方案,但现在找到这个 - http://code.google.com/p/conque/。 允许在MacVim的缓冲区内运行彩色命令。

答案 2 :(得分:2)

不知道这是否有帮助,但在vim中运行我的RSpec测试可以使用--color选项为我提供彩色输出。我使用以下命令来内联运行当前的spec文件:

:map ,t :w\|:!rspec --color %<cr>

答案 3 :(得分:1)

如果你在控制台模式下运行macvim(vim,而不是mvim):命令被重定向到shell并在那里执行。它们占据了整个窗口,而不是它的1/3,它们使用控制台碰巧拥有的任何主题。

但是你得到了ansicolors。

答案 4 :(得分:0)

你的问题(以及由@avocade完成的弹出)解决了我在我的aurum插件中进行了一些打印的问题,因此我写了(开始编写,但最重要的功能已经在这里){ {3}}插件。要在您的帐户中使用它,您必须安装它,安装ansi_esc_echo并执行

execute frawor#Setup('0.0', {'autoload/ansi_esc_echo': '0.0'})
call s:_r.ansi_esc.echo("\e[33mabc")

。目前它仅处理(专门讲述特殊字符或序列)回车,退格(未经测试),制表符,换行符和CSI颜色。