我有与grep相同的问题:运行时:grep,输出没有着色;当运行:!grep,它是.我已经尝试使用–color选项与:grep,无效. :set grepprg返回grepprg = grep -n $* / dev / null.
我读过VIM Unix commands printed in color和VIM: how to color my vim grep result patterns?.前者似乎有相反的问题(即:!命令输出不着色);后者没有任何替代方法来降下壳,我觉得这不是对这个问题的“正确”解决.
默认情况下是Clang,而grep –color = auto(这可能是你的别名),请使用stdout的终结点来决定是否使其输出变色.这很方便,您可以在终端上获得丰富多彩的输出,但在将输出重定向到文件时,只捕获文本,而无需添加额外的命令行选项.
所以你想做的是覆盖这些命令的常规智能,以便它们总是使它们的输出变色.
对于grep,您可以使用–color = always,当它通过运行:grep在Vim中:
:set grepprg=grep\ --color=always\ -n\ $*\ /dev/null
并且根据您的颜色设置和版本的grep,这将工作得很好.
对于clang,您可以更改Makefile以使用clang -fcolor-diagnostics,以便在force colourisation或更高版本中灵活地添加一个额外的变量到$(CC),这些变量将在Vim中运行时被重写:
:set makeprg=make\ EXTRA_CFLAGS=-fcolor-diagnostic
然而(至少与cl ang 3.0和vim 7.3),您会发现cl ang的色彩风格防止Vim从诊断中挑选出文件名和行号,所以这样做会破坏使用以下优点:make而不是:!make.
您可以教会Vim从周围的ANSI转义序列中挑选文件名等,通过向Vim的errorformat选项添加更多条目来匹配色彩cl样式诊断,从而实现着色. (和grepformat类似,如果你的grep colourisation颜色的文件名或亚麻布.)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。