[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH] (Or "question"...) isearch-kill-found
From: |
Drew Adams |
Subject: |
RE: [PATCH] (Or "question"...) isearch-kill-found |
Date: |
Sun, 30 May 2010 17:48:21 -0700 |
> > I proposed the feature to emacs-devel on 2007-07-10:
> > http://lists.gnu.org/archive/html/emacs-devel/2007-07/msg00490.html
> >
> > The bottom line was Richard's decision:
> >
> > "I don't think it is needed. You can type C-@ C-r C-r to put
> > the region around the match that was just found."
>
> In that same thread Davis Herring had an idea that sounds interesting
> and useful to me:
> http://lists.gnu.org/archive/html/emacs-devel/2007-07/msg00492.html
>
> > Thinking about this, I realize
> > that I would get almost all the utility of this idea with
> > just one command added to isearch which meant "exit and move
> > point to start of match", or (closer to your idea) a command
> > which meant "exit and drop mark at start
> > of match" in place of your toggle. WDOT?
>
> I think a function "exit and drop mark at start of match"
> would be very useful.
Hm. That interesting and useful idea that "Davis Herring had" I implemented in
2006, a year before the proposal. And I pointed the list (hence Davis too) to
that code.
I call that command `set-region-around-search-target'.[*]
(defun set-region-around-search-target ()
"Set the region around the last search or query-replace target."
(interactive)
(case last-command
((isearch-forward isearch-backward
isearch-forward-regexp isearch-backward-regexp)
(push-mark isearch-other-end t 'activate))
(t (push-mark (match-beginning 0) t 'activate)))
(setq deactivate-mark nil))
It does exactly what he described: "drop mark at start of match". Unlike
`isearchp-set-region' (the proposal), it is not conditional on the user option
or on `transient-mark-mode', and thus not sensitive to the toggle key, `C-SPC'.
I do not bind that command by default, but you can bind it in `isearch-map'. Or
you can add it, in place of `isearchp-set-region', to `isearch-mode-end-hook'.
It is in fact the _same_ as `isearchp-set-region' (the proposal) in this
context, except that it is unconditional instead of respecting the toggle key.
IOW, if `transient-mark-mode' is on and the option is on, then the proposed
behavior is exactly what Davis described: just put mark at the match start. If
t-m-mode is off and you still want the start to be marked, then use
`set-region-around-search-target' instead.
Here is what I proposed (I use it on `isearch-mode-end-hook'):
(defun isearchp-set-region ()
"Set region around search target, if `isearchp-set-region-flag'.
Used only for Transient Mark mode."
(when (and isearchp-set-region-flag transient-mark-mode)
(push-mark isearch-other-end t 'activate)))
You might notice, BTW, that Davis started by saying that he does not use either
transient-mark mode or delete-selection mode. Yet t-m mode is the context the
feature was designed for - it is active only in t-m mode. (Transient-mark mode
is now the default.)
---
[*] There is perhaps a better test to use here than `last-command'. Maybe
isearch has a state variable that can be checked for this - dunno.
- [PATCH] (Or "question"...) isearch-kill-found, Deniz Dogan, 2010/05/30
- Re: [PATCH] (Or "question"...) isearch-kill-found, Johan Bockgård, 2010/05/30
- Re: [PATCH] (Or "question"...) isearch-kill-found, Deniz Dogan, 2010/05/30
- RE: [PATCH] (Or "question"...) isearch-kill-found, Drew Adams, 2010/05/30
- Re: [PATCH] (Or "question"...) isearch-kill-found, Christoph, 2010/05/30
- Re: [PATCH] (Or "question"...) isearch-kill-found, Lennart Borgman, 2010/05/30
- RE: [PATCH] (Or "question"...) isearch-kill-found, Drew Adams, 2010/05/30
- Re: [PATCH] (Or "question"...) isearch-kill-found, Michael Welsh Duggan, 2010/05/30
- Re: [PATCH] (Or "question"...) isearch-kill-found, Lennart Borgman, 2010/05/31
- RE: [PATCH] (Or "question"...) isearch-kill-found,
Drew Adams <=
Re: [PATCH] (Or "question"...) isearch-kill-found, Juri Linkov, 2010/05/30
- Re: [PATCH] (Or "question"...) isearch-kill-found, Chong Yidong, 2010/05/31
- Re: [PATCH] (Or "question"...) isearch-kill-found, Lennart Borgman, 2010/05/31
- Re: [PATCH] (Or "question"...) isearch-kill-found, Stefan Monnier, 2010/05/31
- Re: [PATCH] (Or "question"...) isearch-kill-found, Lennart Borgman, 2010/05/31
- RE: [PATCH] (Or "question"...) isearch-kill-found, Drew Adams, 2010/05/31
- Re: [PATCH] (Or "question"...) isearch-kill-found, Stefan Monnier, 2010/05/31
- RE: [PATCH] (Or "question"...) isearch-kill-found, Drew Adams, 2010/05/31
- Re: [PATCH] (Or "question"...) isearch-kill-found, Stefan Monnier, 2010/05/31
Re: [PATCH] (Or "question"...) isearch-kill-found, Juri Linkov, 2010/05/31