don't use ;; (setq compilation-scroll-output t) because use N to view the first error is easier
don't use ag reues buffer and reuse window because enable the next-error-follow-minor-mode ad n,p the buffer postion will changed every time view next result