Is there a way to suppress the output when compiling multiple vhd files except for errors?
First check if there are options to vcom which accomplish what you want.
Then see (at least on a unix-like system) if it is segregating output between stdout and stderr in any useful way.
In desperation, on a unix-like system a technique you can use to solve this type of problem for just about any command-line tool is to combine the two output streams and pipe through one (or more) instances of grep instructed to pass or ignore a customized set of things.
For example,
vcom -whatever 2&gt;&amp;1 | grep 'Error\|Something Else You Want to See'
Would pass only lines containing one of those two patterns.

2&gt;&amp;1 is bash syntax to merge stderr with stdout, other shells will do this differently.

The escaped vertical bar is a logical &quot;or&quot;

Beware that the patterns are regular expressions not simple strings.  Certain characters will have special meanings unless escaped.  If you're feeling lazy you can also replace ones you're uncertain about with the single-character wildcard .


You can also do a negative match to reject things
vcom -whatever 2&gt;&amp;1 | grep -v 'Loading package'
And you can string together multiple instance of grep, or even use sed to alter messages, for example to get errors into a format where some IDE's driver can recognize line numbers and make them clickable.   Worth noting however that if you pipe together instances (so the earlier stages output is no longer a terminal) on a longer-running job, you may want to use the --line-buffered option to grep so that it outputs on a continuous basis rather than block buffering.
Finally the program tee can be useful to give you both live output and capture to a file.