diff options
| author | Eli Zaretskii | 2018-06-18 19:21:09 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2018-06-18 19:21:09 +0300 |
| commit | bfc1dfd459c431e95ef685e7cd39f8a8a90d2377 (patch) | |
| tree | 070ed8dc518550f8bf7bb1ba63f81b38d83e2cec | |
| parent | 3e2215642bbca3d1335155278eace39d0a87c267 (diff) | |
| download | emacs-bfc1dfd459c431e95ef685e7cd39f8a8a90d2377.tar.gz emacs-bfc1dfd459c431e95ef685e7cd39f8a8a90d2377.zip | |
Improve documentation of recent changes in Comint
* lisp/comint.el (comint-insert-previous-argument)
(comint-arguments, comint-insert-previous-argument-from-end):
Doc fixes.
(comint-insert-previous-argument-from-end): Add :version.
* doc/emacs/misc.texi (Shell Ring): Fix a typo in the name of
'comint-insert-previous-argument'. Document
'comint-insert-previous-argument-from-end'. (Bug#25271)
* etc/NEWS: Reformat and rephrase the entry for recent Comint
changes.
| -rw-r--r-- | doc/emacs/misc.texi | 22 | ||||
| -rw-r--r-- | etc/NEWS | 31 | ||||
| -rw-r--r-- | lisp/comint.el | 25 |
3 files changed, 46 insertions, 32 deletions
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 7c595388ead..24586eb2813 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi | |||
| @@ -1133,7 +1133,7 @@ Fetch the next subsequent command from the history | |||
| 1133 | 1133 | ||
| 1134 | @item C-c . | 1134 | @item C-c . |
| 1135 | @kindex C-c . @r{(Shell mode)} | 1135 | @kindex C-c . @r{(Shell mode)} |
| 1136 | @findex comint-input-previous-argument | 1136 | @findex comint-insert-previous-argument |
| 1137 | Fetch one argument from an old shell command | 1137 | Fetch one argument from an old shell command |
| 1138 | (@code{comint-input-previous-argument}). | 1138 | (@code{comint-input-previous-argument}). |
| 1139 | 1139 | ||
| @@ -1180,14 +1180,20 @@ you just repeated. Then type @key{RET} to reexecute this command. You | |||
| 1180 | can reexecute several successive commands by typing @kbd{C-c C-x | 1180 | can reexecute several successive commands by typing @kbd{C-c C-x |
| 1181 | @key{RET}} over and over. | 1181 | @key{RET}} over and over. |
| 1182 | 1182 | ||
| 1183 | The command @kbd{C-c .}@: (@code{comint-input-previous-argument}) | 1183 | The command @kbd{C-c .}@: (@code{comint-insert-previous-argument}) |
| 1184 | copies an individual argument from a previous command, like | 1184 | copies an individual argument from a previous command, like |
| 1185 | @kbd{@key{ESC} .} in Bash. The simplest use copies the last argument from the | 1185 | @kbd{@key{ESC} .}@: in Bash and @command{zsh}. The simplest use |
| 1186 | previous shell command. With a prefix argument @var{n}, it copies the | 1186 | copies the last argument from the previous shell command. With a |
| 1187 | @var{n}th argument instead. Repeating @kbd{C-c .} copies from an | 1187 | prefix argument @var{n}, it copies the @var{n}th argument instead. |
| 1188 | earlier shell command instead, always using the same value of @var{n} | 1188 | Repeating @kbd{C-c .} copies from an earlier shell commands, always |
| 1189 | (don't give a prefix argument when you repeat the @kbd{C-c .} | 1189 | using the same value of @var{n} (don't give a prefix argument when |
| 1190 | command). | 1190 | you repeat the @kbd{C-c .} command). |
| 1191 | |||
| 1192 | @vindex comint-insert-previous-argument-from-end | ||
| 1193 | If you set @code{comint-insert-previous-argument-from-end} to a | ||
| 1194 | non-@code{nil} value, @kbd{C-c .}@: will instead copy the @var{n}th | ||
| 1195 | argument counting from the last one; this emulates @kbd{@key{ESC} .}@: | ||
| 1196 | in @command{zsh}. | ||
| 1191 | 1197 | ||
| 1192 | These commands get the text of previous shell commands from a special | 1198 | These commands get the text of previous shell commands from a special |
| 1193 | history list, not from the shell buffer itself. Thus, editing the shell | 1199 | history list, not from the shell buffer itself. Thus, editing the shell |
| @@ -186,24 +186,29 @@ navigation and editing of large files. | |||
| 186 | * Changes in Specialized Modes and Packages in Emacs 27.1 | 186 | * Changes in Specialized Modes and Packages in Emacs 27.1 |
| 187 | 187 | ||
| 188 | ** Browse-url | 188 | ** Browse-url |
| 189 | |||
| 189 | *** The function 'browse-url-emacs' can now visit a URL in selected window. | 190 | *** The function 'browse-url-emacs' can now visit a URL in selected window. |
| 190 | It now treats the optional 2nd argument to mean that the URL should be | 191 | It now treats the optional 2nd argument to mean that the URL should be |
| 191 | shown in the currently selected window. | 192 | shown in the currently selected window. |
| 192 | 193 | ||
| 193 | ** Comint | 194 | ** Comint |
| 194 | *** 'comint-insert-previous-argument' no longer interprets &. | 195 | |
| 195 | This worked strangely in shell-mode in the presence of &&. And omitting this | 196 | +++ |
| 196 | logic makes sense since 'comint-insert-previous-argument' exists to emulate M-. | 197 | *** 'C-c .' (comint-insert-previous-argument) no longer interprets '&'. |
| 197 | in bash and zsh, and neither of those treat & specially. | 198 | This feature caused problems when '&&' was present in the previous |
| 198 | 199 | command. Since this command emulates 'M-.' in Bash and zsh, neither | |
| 199 | *** 'comint-insert-previous-argument' knows how to count args | 200 | of which treats '&' specially, the feature was removed for |
| 200 | from the beginning or from the end. This is useful because | 201 | compatibility with these shells. |
| 201 | 'comint-insert-previous-argument' exists to emulate M-. in bash and zsh; and | 202 | |
| 202 | bash counts from the start while zsh counts from the end. | 203 | +++ |
| 203 | 204 | *** 'comint-insert-previous-argument' can now count arguments from the end. | |
| 204 | *** New variable 'comint-insert-previous-argument-from-end' controls whether | 205 | By default, invoking 'C-c .' with a numeric argument N would copy the |
| 205 | args passed to 'comint-insert-previous-argument' count from the beginning or | 206 | Nth argument, counting from the first one. But if the new option |
| 206 | from the end | 207 | 'comint-insert-previous-argument-from-end' is non-nil, it will copy |
| 208 | the Nth argument counting from the last one. Thus 'C-c .' can now | ||
| 209 | better emulate 'M-.' in both Bash and zsh, since the former counts | ||
| 210 | from the beginning of the arguments, while the latter counts from the | ||
| 211 | end. | ||
| 207 | 212 | ||
| 208 | ** Flymake | 213 | ** Flymake |
| 209 | 214 | ||
diff --git a/lisp/comint.el b/lisp/comint.el index 82c547c9760..71a2b5eca55 100644 --- a/lisp/comint.el +++ b/lisp/comint.el | |||
| @@ -1682,8 +1682,9 @@ characters), and are not considered to be delimiters." | |||
| 1682 | 1682 | ||
| 1683 | (defun comint-arguments (string nth mth) | 1683 | (defun comint-arguments (string nth mth) |
| 1684 | "Return from STRING the NTH to MTH arguments. | 1684 | "Return from STRING the NTH to MTH arguments. |
| 1685 | NTH and/or MTH can be nil, which means the last argument. NTH | 1685 | NTH and/or MTH can be nil, which means the last argument. |
| 1686 | and MTH can be <0 to count from the end; -1 means last argument. | 1686 | NTH and MTH can be negative to count from the end; -1 means |
| 1687 | the last argument. | ||
| 1687 | Returned arguments are separated by single spaces. We assume | 1688 | Returned arguments are separated by single spaces. We assume |
| 1688 | whitespace separates arguments, except within quotes and except | 1689 | whitespace separates arguments, except within quotes and except |
| 1689 | for a space or tab that immediately follows a backslash. Also, a | 1690 | for a space or tab that immediately follows a backslash. Also, a |
| @@ -2660,14 +2661,15 @@ text matching `comint-prompt-regexp'." | |||
| 2660 | (defvar-local comint-insert-previous-argument-last-index nil) | 2661 | (defvar-local comint-insert-previous-argument-last-index nil) |
| 2661 | 2662 | ||
| 2662 | (defcustom comint-insert-previous-argument-from-end nil | 2663 | (defcustom comint-insert-previous-argument-from-end nil |
| 2663 | "If nil, the INDEX argument to | 2664 | "If non-nil, `comint-insert-previous-argument' counts args from the end. |
| 2664 | `comint-insert-previous-argument' refers to the INDEX-th | 2665 | If this variable is nil, the default, `comint-insert-previous-argument' |
| 2665 | argument, counting from the beginning; if non-nil, counting from | 2666 | counts the arguments from the beginning; if non-nil, it counts from |
| 2666 | the end. This exists to emulate the bahavior of `M-number M-.' | 2667 | the end instead. This allows to emulate the behavior of `ESC-NUM ESC-.' |
| 2667 | in bash and zsh: in bash, `number' counts from the | 2668 | in both Bash and zsh: in Bash, `number' counts from the |
| 2668 | beginning (variable in nil), while in zsh it counts from the end." | 2669 | beginning (variable is nil), while in zsh, it counts from the end." |
| 2669 | :type 'boolean | 2670 | :type 'boolean |
| 2670 | :group 'comint) | 2671 | :group 'comint |
| 2672 | :version "27.1") | ||
| 2671 | 2673 | ||
| 2672 | (defun comint-insert-previous-argument (index) | 2674 | (defun comint-insert-previous-argument (index) |
| 2673 | "Insert the INDEXth argument from the previous Comint command-line at point. | 2675 | "Insert the INDEXth argument from the previous Comint command-line at point. |
| @@ -2676,8 +2678,9 @@ necessary to ensure that it's separated from adjacent arguments. | |||
| 2676 | Interactively, if no prefix argument is given, the last argument is inserted. | 2678 | Interactively, if no prefix argument is given, the last argument is inserted. |
| 2677 | Repeated interactive invocations will cycle through the same argument | 2679 | Repeated interactive invocations will cycle through the same argument |
| 2678 | from progressively earlier commands (using the value of INDEX specified | 2680 | from progressively earlier commands (using the value of INDEX specified |
| 2679 | with the first command). Values of INDEX<0 count from the end, so INDEX=-1 | 2681 | with the first command). Values of INDEX < 0 count from the end, so |
| 2680 | is the last argument. This command is like `M-.' in bash and zsh." | 2682 | INDEX = -1 is the last argument. This command is like `M-.' in |
| 2683 | Bash and zsh." | ||
| 2681 | (interactive "P") | 2684 | (interactive "P") |
| 2682 | (unless (null index) | 2685 | (unless (null index) |
| 2683 | (setq index (prefix-numeric-value index))) | 2686 | (setq index (prefix-numeric-value index))) |