我正在使用 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 颜色转义。
这个:
:!echo $(tput setaf 1)Hello world$(tput sgr0)
将打印
Hello world
彩色。
不要使用转义序列,而是命名 tput 条目。 (所有时间,不仅在这个例子中)。阅读:
男子临时信息;男人信息; man tput - 了解更多信息。
根据评论,我发现这个问题非常有趣。
仍在寻找更好的解决方案,但现在找到这个 - http://code.google.com/p/conque/ 。 允许在 MacVim 的缓冲区内运行彩色命令。
不知道这是否有帮助,但是在 vim 中运行我的 RSpec 测试使用
--color
选项给我彩色输出。我使用以下命令内联运行当前规范文件:
:map ,t :w\|:!rspec --color %<cr>
如果你在控制台模式下运行 macvim(vim,不是 mvim)所有:!命令被重定向到 shell 并在那里执行。他们占据整个窗口而不是 1/3,并且他们使用您的控制台恰好具有的任何主题。
但是你得到了 ansicolors.
你的问题(以及它由@avocade 完成的弹出窗口)解决了我在 aurum 插件中打印时遇到的问题,因此我写了(开始写,但最重要的功能已经在这里)ansi_esc_echo插入。要在您的应用程序中使用它,您必须安装它,安装 frawor 并执行
execute frawor#Setup('0.0', {'autoload/ansi_esc_echo': '0.0'})
call s:_r.ansi_esc.echo("\e[33mabc")
.目前它只处理(专门讨论特殊字符或序列)回车、退格(未经测试)、制表符、换行符和 CSI 颜色。