[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
isearch-allow-prefix [Was: [PATCH] Make `C-x {' and `C-x }' repeatable]
From: |
Alan Mackenzie |
Subject: |
isearch-allow-prefix [Was: [PATCH] Make `C-x {' and `C-x }' repeatable] |
Date: |
Sun, 2 Jun 2013 21:05:12 +0000 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Hi, Juri and Stefan.
On Sat, May 25, 2013 at 11:40:55PM +0300, Juri Linkov wrote:
> >> There is an unaddressed request for this feature in bug#9706.
> > If I remember correctly, the patch to the code was finished and working
> > (and who knows, might still work), but the patch to the manual hadn't yet
> > been written.
> I highly recommend enabling `isearch-allow-prefix' by default
> in your patch, provided that it can correctly apply a specified
> argument either to a isearch command (that doesn't exit isearch)
> or to a normal command (that exits isearch).
> IOW, if `C-u C-M-y' typed in isearch-mode will apply `C-u'
> to `isearch-yank-char' without exiting isearch, but `C-u C-f'
> will exit isearch and apply `C-u' to `forward-char', then
> the default value of `isearch-allow-prefix' should be `t'.
OK. Here is a patch for isearch.el, search.texi and NEWS. I'm not
terribly impressed by the documentation patch, but it was the best I
could manage.
Do you have any comments on the patch, or should I just commit it?
=== modified file 'doc/emacs/emacs.texi'
*** doc/emacs/emacs.texi 2013-03-30 16:47:07 +0000
--- doc/emacs/emacs.texi 2013-06-02 18:25:29 +0000
***************
*** 396,409 ****
Incremental Search
! * Basic Isearch:: Basic incremental search commands.
! * Repeat Isearch:: Searching for the same string again.
! * Error in Isearch:: When your string is not found.
! * Special Isearch:: Special input in incremental search.
! * Isearch Yank:: Commands that grab text into the search string
! or else edit the search string.
! * Isearch Scroll:: Scrolling during an incremental search.
! * Isearch Minibuffer:: Incremental search of the minibuffer history.
Replacement Commands
--- 396,410 ----
Incremental Search
! * Basic Isearch:: Basic incremental search commands.
! * Repeat Isearch:: Searching for the same string again.
! * Error in Isearch:: When your string is not found.
! * Prefix Argument in Isearch:: What prefix arguments do.
! * Special Isearch:: Special input in incremental search.
! * Isearch Yank:: Commands that grab text into the search string
! or else edit the search string.
! * Isearch Scroll:: Scrolling during an incremental search.
! * Isearch Minibuffer:: Incremental search of the minibuffer history.
Replacement Commands
=== modified file 'doc/emacs/search.texi'
*** doc/emacs/search.texi 2013-05-15 23:14:18 +0000
--- doc/emacs/search.texi 2013-06-02 20:52:05 +0000
***************
*** 52,65 ****
@end table
@menu
! * Basic Isearch:: Basic incremental search commands.
! * Repeat Isearch:: Searching for the same string again.
! * Error in Isearch:: When your string is not found.
! * Special Isearch:: Special input in incremental search.
! * Isearch Yank:: Commands that grab text into the search string
! or else edit the search string.
! * Isearch Scroll:: Scrolling during an incremental search.
! * Isearch Minibuffer:: Incremental search of the minibuffer history.
@end menu
@node Basic Isearch
--- 52,66 ----
@end table
@menu
! * Basic Isearch:: Basic incremental search commands.
! * Repeat Isearch:: Searching for the same string again.
! * Error in Isearch:: When your string is not found.
! * Prefix Argument in Isearch:: What prefix arguments do.
! * Special Isearch:: Special input in incremental search.
! * Isearch Yank:: Commands that grab text into the search string
! or else edit the search string.
! * Isearch Scroll:: Scrolling during an incremental search.
! * Isearch Minibuffer:: Incremental search of the minibuffer history.
@end menu
@node Basic Isearch
***************
*** 212,217 ****
--- 213,234 ----
waiting for more input, so a second @kbd{C-g} will cancel the entire
search.
+ @node Prefix Argument in Isearch
+ @subsection The Prefix Argument in Incremental Search
+
+ @vindex isearch-allow-prefix
+ In incremental search, when you enter a prefix argument
+ (@pxref{Arguments}), by default it will apply either to the next
+ action in the search or to the command that exits the search.
+
+ In previous versions of Emacs, entering a prefix argument always
+ terminated the search. You can revert to this behavior by setting the
+ variable @code{isearch-allow-prefix} to @code{nil}.
+
+ When @code{isearch-allow-scroll} is address@hidden (@pxref{Isearch
+ Scroll}), prefix arguments always have the default behavior described
+ above.
+
@node Special Isearch
@subsection Special Input for Incremental Search
=== modified file 'etc/NEWS'
*** etc/NEWS 2013-05-27 23:02:37 +0000
--- etc/NEWS 2013-06-02 19:56:21 +0000
***************
*** 244,249 ****
--- 244,253 ----
*** `query-replace' skips invisible text when `search-invisible' is nil,
and opens overlays with hidden text when `search-invisible' is `open'.
+ +++
+ *** By default, prefix arguments can now be entered without
+ terminating Isearch mode. Set `isearch-allow-prefix' to nil to disable.
+
** MH-E has been updated to MH-E version 8.5.
See MH-E-NEWS for details.
=== modified file 'lisp/isearch.el'
*** lisp/isearch.el 2013-05-27 22:42:11 +0000
--- lisp/isearch.el 2013-06-02 20:54:25 +0000
***************
*** 2102,2107 ****
--- 2102,2115 ----
:type 'boolean
:group 'isearch)
+ (defcustom isearch-allow-prefix t
+ "Whether prefix arguments are allowed during incremental search.
+ If non-nil, entering a prefix argument will not terminate the
+ search. This option is ignored \(presumed t) when
+ `isearch-allow-scroll' is set."
+ :type 'boolean
+ :group 'isearch)
+
(defun isearch-string-out-of-window (isearch-point)
"Test whether the search string is currently outside of the window.
Return nil if it's completely visible, or if point is visible,
***************
*** 2254,2265 ****
(setq prefix-arg arg)
(apply 'isearch-unread keylist)
(isearch-edit-string))
! ;; Handle a scrolling function.
! ((and isearch-allow-scroll
! (progn (setq key (isearch-reread-key-sequence-naturally
keylist))
! (setq keylist (listify-key-sequence key))
! (setq main-event (aref key 0))
! (setq scroll-command (isearch-lookup-scroll-key key))))
;; From this point onwards, KEY, KEYLIST and MAIN-EVENT hold a
;; complete key sequence, possibly as modified by function-key-map,
;; not merely the one or two event fragment which invoked
--- 2262,2280 ----
(setq prefix-arg arg)
(apply 'isearch-unread keylist)
(isearch-edit-string))
! ;; Handle a scrolling function or prefix argument.
! ((progn
! (setq key (isearch-reread-key-sequence-naturally keylist)
! keylist (listify-key-sequence key)
! main-event (aref key 0))
! (or (and isearch-allow-scroll
! (setq scroll-command (isearch-lookup-scroll-key key)))
! (and isearch-allow-prefix
! (let (overriding-terminal-local-map)
! (setq scroll-command (key-binding key))
! (memq scroll-command
! '(universal-argument
! negative-argument digit-argument))))))
;; From this point onwards, KEY, KEYLIST and MAIN-EVENT hold a
;; complete key sequence, possibly as modified by function-key-map,
;; not merely the one or two event fragment which invoked
--
Alan Mackenzie (Nuremberg, Germany).
- isearch-allow-prefix [Was: [PATCH] Make `C-x {' and `C-x }' repeatable],
Alan Mackenzie <=
- Re: isearch-allow-prefix [Was: [PATCH] Make `C-x {' and `C-x }' repeatable], Juri Linkov, 2013/06/04
- Re: isearch-allow-prefix [Was: [PATCH] Make `C-x {' and `C-x }' repeatable], Alan Mackenzie, 2013/06/04
- Re: isearch-allow-prefix [Was: [PATCH] Make `C-x {' and `C-x }' repeatable], Juri Linkov, 2013/06/05
- Re: isearch-allow-prefix [Was: [PATCH] Make `C-x {' and `C-x }' repeatable], Alan Mackenzie, 2013/06/05
- isearch-allow-move [Was: isearch-allow-prefix], Juri Linkov, 2013/06/06
- Re: isearch-allow-move [Was: isearch-allow-prefix], Stefan Monnier, 2013/06/06
- Re: isearch-allow-move [Was: isearch-allow-prefix], Juri Linkov, 2013/06/06
- RE: isearch-allow-move [Was: isearch-allow-prefix], Drew Adams, 2013/06/06
- Re: isearch-allow-move [Was: isearch-allow-prefix], Stefan Monnier, 2013/06/06
- Re: isearch-allow-move [Was: isearch-allow-prefix], Juri Linkov, 2013/06/07