彩色打印的 VIM Unix 命令

问题描述 投票:0回答:5

我正在使用 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 颜色转义。

vim macvim ansi-escape
5个回答
4
投票

你不能。但是你可以暂停编辑器并相对快速地进入 shell;

或者您可以使用

Ansi Filter
删除转义序列,这样您至少不会看到一团糟。


2
投票

这个:

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

将打印

Hello world
彩色。

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

根据评论,我发现这个问题非常有趣。

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


2
投票

不知道这是否有帮助,但是在 vim 中运行我的 RSpec 测试使用

--color
选项给我彩色输出。我使用以下命令内联运行当前规范文件:

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


1
投票

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

但是你得到了 ansicolors.


0
投票

你的问题(以及它由@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 颜色。

© www.soinside.com 2019 - 2024. All rights reserved.