如果从ViM调用`make`,如何在Makefile中知道?

Sha*_*baz 8 vim makefile

简而言之,我需要在Makefile中知道是否从ViM调用了make.是否存在某个变量(例如环境或其他),ViM将设置为特定值?

我需要这个的原因如下:

如果从bash调用,我可以为用户(或我自己)做各种精彩的事情,例如给出关于正在构建哪个子系统的消息并突出显示错误和警告.

然而问题是,当从ViM调用时,错误消息已经被捕获并且引入\x1b命令(用于颜色)使得消息对ViM来说是不可理解的.我想要做的是:make在ViM中发布时基本上禁用着色.

虽然我宁愿让Makefile解决它,但我对其他解决方案持开放态度.

Ing*_*kat 2

在 Vim 中,您可以设置由打开的 shell 继承的环境变量;例如

:let $INSIDE_VIM = 1
Run Code Online (Sandbox Code Playgroud)

如果这只是关于:make,您可以操纵 来'makeprg'确定调用的内容:

:set makeprg=export\ INSIDE_VIM=1;make
Run Code Online (Sandbox Code Playgroud)

如果您只关心着色的转义序列,您可以设置$TERM为不理解颜色的东西(dumb也许?)并且着色不是硬编码的(不幸的是,这在许多工具中是一个很大的问题) ,它应该遵循终端设置并且不打印转义序列。