On the subject of grep-mode, it could have a similar command introduced
too, for situations when you only needed to find one occurrence, to jump to
it and quit the window.
This is what I already successfully use:
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index d2293151c7..08c44dcb25 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -2572,11 +2572,15 @@ compile-goto-error
(or (compilation-buffer-p (current-buffer))
(error "Not in a compilation buffer"))
(compilation--ensure-parse (point))
+ (let ((window (posn-window (event-end event))))
(if (get-text-property (point) 'compilation-directory)
(dired-other-window
(car (get-text-property (point) 'compilation-directory)))
(setq compilation-current-error (point))
- (next-error-internal)))
+ (next-error-internal))
+ (when current-prefix-arg
+ (with-selected-window window
+ (quit-window)))))