> I think C-u RET is probably fine, especially if we add a change like you > described to compile-goto-error as well. But if anyone wanted to propose > some other alternative, they're welcome to. I want to propose another alternative: to implement C-u RET not only for compilation-mode, but also for e.g. occur-mode, maybe current-prefix-arg could be handled in 'next-error-found' by adding to the end: (when (and current-prefix-arg from-buffer (not (eq from-buffer to-buffer))) (let ((window (get-buffer-window from-buffer))) (with-selected-window window (quit-restore-window window)))) But this means that it should take into account possible values of the prefix arg of the command 'next-error': A prefix ARG specifies how many error messages to move; negative means move back to previous error messages. Just C-u as a prefix means reparse the error message buffer and start at the first error. So since 'C-u M-g n' is already taken, an alternative is 'C-0 M-g n'. If 'C-0' makes no sense for 'C-0 M-g n', it could be used to close the window. Or maybe 'C-0 M-g n' still makes sense, e.g. to redisplay the current location? BTW, here are the commands that work like TAB in grep-mode. I propose to install this patch, so at least users could bind them in own init files: