The buffer name for the shell-command or async-shell-command would be much more useful if they were given the name of the command being executed.
I started working a bit on a patch for that, but it's just code changes right now. Here's a preview of what I mean.
@@ -4252,12 +4252,6 @@ undo-outer-limit-truncate
;;;; Shell commands
-(defconst shell-command-buffer-name "*Shell Command Output*"
- "Name of the output buffer for shell commands.")
-
-(defconst shell-command-buffer-name-async "*Async Shell Command*"
- "Name of the output buffer for asynchronous shell commands.")
-
(defvar shell-command-history nil
"History list for some commands that read shell commands.
@@ -4671,7 +4660,8 @@ shell-command
;; Output goes in a separate buffer.
(if (string-match "[ \t]*&[ \t]*\\'" command)
;; Command ending with ampersand means asynchronous.
- (let* ((buffer (get-buffer-create
+ (let* ((shell-command-buffer-name-async (concat "*" command "*"))
+ (buffer (get-buffer-create
(or output-buffer shell-command-buffer-name-async)))
(bname (buffer-name buffer))
(proc (get-buffer-process buffer))
@@ -4942,7 +4932,8 @@ shell-command-on-region
shell-command-default-error-buffer
t
(region-noncontiguous-p))))
- (let ((error-file
+ (let ((shell-command-buffer-name (concat "*" command "*"))
+ (error-file
(if error-buffer
(make-temp-file
(expand-file-name "scor"