work with EDITOR like 'mate -w'

It's entirely possible that EDITOR will be set to something that includes parameters, like `emacs -nw` or `mate -w`. In those cases, you have to exec a string, because you can't pass something with arguments as the first argument to exec.