对于某些较长的错误,gcc输出密集并且有很多换行等。尤其是当错误很细微时,我可能需要花10-30秒的斜视时间才能用我的眼睛来解析它。
我已经将其粘贴在打开的代码编辑器窗口中,以突出显示一些基本语法并启用正则表达式的重新格式化。
有人发明了一种更自动化的方法吗?
最佳答案
我使用此脚本,称为colorize
:
#!/bin/bash
while read x ; do echo $x ; done \
| sed -e "s/.*error:.*/\x1b[1;36m&\x1b[0m/" \
-e "s/.*warning:.*/\x1b[1;36m&\x1b[0m/" \
-e "s/^\(.*\)\(required from\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
-e "s/^\(.*\)\(In instantiation of\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
-e "s/^\(.*\)\(In member\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
| sed -e "s/error:/\x1b[1;31m&\x1b[1;36m/" \
-e "s/warning:/\x1b[1;35m&\x1b[1;36m/" \
-e "s/note:/\x1b[1;30m&\x1b[0m/"
然后我就这样称呼它(使用make或任何构建系统):
make |& colorize
而且我得到类似于clang的颜色输出。