diff options
author | Stefan Kangas <stefankangas@gmail.com> | 2019-10-11 13:01:13 +0200 |
---|---|---|
committer | Stefan Kangas <stefankangas@gmail.com> | 2019-10-11 13:01:13 +0200 |
commit | 552c20ce39cd513cd6d0c847a1d291554143ba9a (patch) | |
tree | 09e0c48867e1680faf09530e5f77928b01ab17c9 | |
parent | 505550ba7b230d90d0b1e622121b3e34a19f7271 (diff) | |
download | emacs-552c20ce39cd513cd6d0c847a1d291554143ba9a.tar.gz emacs-552c20ce39cd513cd6d0c847a1d291554143ba9a.tar.bz2 emacs-552c20ce39cd513cd6d0c847a1d291554143ba9a.zip |
Support showing directory in shell command prompt
* lisp/simple.el (shell-command-prompt-show-cwd): New defcustom.
(async-shell-command, shell-command): Show current directory in prompt
when above option is non-nil. (Bug#4987)
* etc/NEWS: Announce it.
-rw-r--r-- | etc/NEWS | 4 | ||||
-rw-r--r-- | lisp/simple.el | 21 |
2 files changed, 23 insertions, 2 deletions
@@ -1568,6 +1568,10 @@ variable for remote shells. It still defaults to "/bin/sh". *** 'async-shell-command-width' defines the number of display columns available for output of asynchronous shell commands. ++++ +*** Prompt for shell commands can now show the current directory. +Customize 'shell-command-prompt-show-cwd' to enable it. + ** Pcomplete *** The 'pcomplete' command is now obsolete diff --git a/lisp/simple.el b/lisp/simple.el index 597278ae2b4..44ab8e125d6 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -3384,6 +3384,13 @@ command output." :group 'shell :version "27.1") +(defcustom shell-command-prompt-show-cwd nil + "If non-nil, show current directory when prompting for a shell command. +This affects `shell-command' and `async-shell-command'." + :type 'boolean + :group 'shell + :version "27.1") + (defcustom shell-command-dont-erase-buffer nil "If non-nil, output buffer is not erased between shell commands. Also, a non-nil value sets the point in the output buffer @@ -3473,7 +3480,12 @@ directly, since it offers more control and does not impose the use of a shell (with its need to quote arguments)." (interactive (list - (read-shell-command "Async shell command: " nil nil + (read-shell-command (if shell-command-prompt-show-cwd + (format-message "Async shell command in `%s': " + (abbreviate-file-name + default-directory)) + "Async shell command: ") + nil nil (let ((filename (cond (buffer-file-name) @@ -3546,7 +3558,12 @@ impose the use of a shell (with its need to quote arguments)." (interactive (list - (read-shell-command "Shell command: " nil nil + (read-shell-command (if shell-command-prompt-show-cwd + (format-message "Shell command in `%s': " + (abbreviate-file-name + default-directory)) + "Shell command: ") + nil nil (let ((filename (cond (buffer-file-name) |