What exactly is Vim doing when executing the :make command?I was expecting that it just executes the content of the makeprg variable just like running :!make and additionally collects the output, but apparently the behavior is different. For example the terminal size is set up differently.For example create a makefile with the following contentcheck:    echo asdf > foo.txt    aspell -c foo.txtThen compare the behavior of :make and :!make.Is it different for you, too, or is this something strange with my setup?
Terminal setup when running make from Vim
makeprg
From :h :make:The :make command executes the command given with the 'makeprg' option.This is done by passing the command to the shell given with the 'shell'option.  This works almost like typing        :!{makeprg} [arguments] {shellpipe} {errorfile}.{makeprg} is the string given with the 'makeprg' option.  Any command can beused, not just make.  [arguments] is anything that is typed after :make.{shellpipe} is the 'shellpipe' option.{errorfile} is the 'makeef' option, with ## replaced to make it unique.So, it's not exactly the same as just :!make. Following through, for shellpipe:                                                'shellpipe' 'sp''shellpipe' 'sp'        string  (default >, | tee, |& tee or 2>&1| tee)                For Unix the default it | tee.  The stdout of the compiler is saved        in a file and echoed to the screen.  If the 'shell' option is csh or        tcsh after initializations, the default becomes |& tee.  If the        'shell' option is sh, ksh, mksh, pdksh, zsh or bash the        default becomes 2>&1| tee.So, the actual command is more like::!make 2>&1 | tee barAnd, in fact, if you run:aspell -c foo.txt 2>&1 | tee barYou'll get the same behaviour.So, this is perfectly normal behaviour.