在vim中运行外部命令时如何保持颜色?

CMi*_*nus 16 vim shell

例如,对于命令ls --color在 shell 中执行时显示彩色结果。但是,当我:!ls --color在 vim 内部调用时,所有颜色信息都消失了。

在vim中调用外部命令时我应该怎么做才能保持颜色?

编辑:为了澄清我的问题,这是一个问题关于VIM本身,我竟问如何使“LS”的色彩。我想知道的是,一般情况下如何启用所有shell命令的彩色结果显示(只要它们有彩色结果)。

rom*_*inl 5

CLI Vim 还是 GUI Vim?

您无法在 CLI Vim 本身中显示:!ls:!ls --color或任何其他外部命令的输出,因为它是单线程的:Vim 被挂起并$ ls --color在您的 shell 中执行。没有办法解决这个问题。好吧,您可以将外部命令的输出放在当前缓冲区中,但这不是一回事。

在 GUI Vim 中,你只能得到一个完全无法显示任何颜色的伪 shell。也没有办法。

如果您迫切需要外部命令的彩色输出,您必须使用类似的东西启动外部终端模拟器:!xterm & 使用类似Conque Shell的插件。