emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master afe2997: Comint: new user option for C-c M-r and C-


From: Philipp Stephani
Subject: [Emacs-diffs] master afe2997: Comint: new user option for C-c M-r and C-c M-s
Date: Tue, 22 Nov 2016 12:49:56 +0000 (UTC)

branch: master
commit afe2997119a5e6b108851f2e236037da1d4acef2
Author: Philipp Stephani <address@hidden>
Commit: Philipp Stephani <address@hidden>

    Comint: new user option for C-c M-r and C-c M-s
    
    This option allows the user to specify where to place point after these
    commands.
    
    * comint.el (comint-move-point-for-matching-input): New user option.
    (comint-previous-matching-input-from-input): Use user option.
---
 etc/NEWS       |    6 ++++++
 lisp/comint.el |   14 +++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/etc/NEWS b/etc/NEWS
index 02e93e4..a65e262 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -337,6 +337,12 @@ whose content matches a regexp; bound to '% g'.
 
 *** Support for opening links to man pages in Man or WoMan mode.
 
+** Comint
+
+---
+*** New user option 'comint-move-point-for-matching-input' to control
+where to place point after C-c M-r and C-c M-s.
+
 ** Compilation mode
 
 ---
diff --git a/lisp/comint.el b/lisp/comint.el
index 919265f..b9c65b0 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -283,6 +283,17 @@ This variable is buffer-local in all Comint buffers."
                 (const others))
   :group 'comint)
 
+(defcustom comint-move-point-for-matching-input 'after-input
+  "Controls where to place point after matching input.
+\\<comint-mode-map>This influences the commands 
\\[comint-previous-matching-input-from-input] and 
\\[comint-next-matching-input-from-input].
+If `after-input', point will be positioned after the input typed
+by the user, but before the rest of the history entry that has
+been inserted.  If `end-of-line', point will be positioned at the
+end of the current logical (not visual) line after insertion."
+  :type '(radio (const :tag "Stay after input" after-input)
+                (const :tag "Move to end of line" end-of-line))
+  :group 'comint)
+
 (defvaralias 'comint-scroll-to-bottom-on-output 'comint-move-point-for-output)
 
 (defcustom comint-scroll-show-maximum-output t
@@ -1222,7 +1233,8 @@ If N is negative, search forwards for the -Nth following 
match."
     (comint-previous-matching-input
      (concat "^" (regexp-quote comint-matching-input-from-input-string))
      n)
-    (goto-char opoint)))
+    (when (eq comint-move-point-for-matching-input 'after-input)
+      (goto-char opoint))))
 
 (defun comint-next-matching-input-from-input (n)
   "Search forwards through input history for match for current input.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]