all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Greg Hill <ghill@synergymicro.com>
Subject: Re: placing cursor at *start* of match in incremental search
Date: Wed, 22 Jan 2003 11:53:29 -0800	[thread overview]
Message-ID: <p04310100ba548e55373a@[198.17.100.22]> (raw)
In-Reply-To: <3E2ED36A.4080003@ihs.com>

At 10:22 AM -0700 1/22/03, Kevin Rodgers wrote:
<snip>
>Use the source:


Good "advice" :) for those of us who can make heads or tails of it. 
But it's probably a bit much to ask of someone like Maciej who isn't 
really a lisp programmer.


>`C-g' is bound in isearch-mode-map to isearch-abort, which sets
>isearch-success to nil before calling isearch-done, which is what runs
>isearch-mode-end-hook.  So you could check isearch-success before
>calling goto-char in the hook function.

i.e., for someone who isn't a lisp programmer:

    (add-hook 'isearch-mode-end-hook
          (function (lambda ()
               (if isearch-success (goto-char (match-beginning 0))))))

Seems to work.  Thanks, Kevin.

Incidentally, Maciej, when you are experimenting with different 
versions of anonymous (lambda) functions as hooks in the same Emacs 
session, don't forget to explicitly remove any old versions of the 
function from the hook variable, or you will end up executing more 
that one version and wondering why the new one you just added doesn't 
seem to work the way it should.

For example, after

    (add-hook 'isearch-mode-end-hook
          (function (lambda ()
               (goto-char (match-beginning 0)))))

you should either

    (setq isearch-mode-end-hook nil)

which will remove ALL functions from that hook, or

    (remove-hook 'isearch-mode-end-hook
          (function (lambda ()
               (goto-char (match-beginning 0)))))

which will specifically remove just that one function, before you

    (add-hook 'isearch-mode-end-hook
          (function (lambda ()
               (if isearch-success (goto-char (match-beginning 0))))))

In case you didn't know, the *scratch* buffer, which uses 
lisp-interaction-mode, is the right place to do stuff like that.  I 
don't remember what source I used to learn about how to use 
lisp-interaction mode.  The versions I have of the GNU Emacs Manual 
and the GNU Emacs Lisp Reference Manual don't seem to be much help; 
but there really isn't much to it.  Perhaps someone else can point 
you to a geed tutorial.

--Greg

  reply	other threads:[~2003-01-22 19:53 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-16 15:24 placing cursor at *start* of match in incremental search Maciej Kalisiak
2003-01-16 16:09 ` Stefan Monnier <foo@acm.com>
2003-01-16 17:18 ` Kevin Rodgers
2003-01-16 17:53 ` Adrian Kubala
2003-01-16 20:30 ` Greg Hill
2003-01-16 20:45 ` David Robinow
2003-01-17 18:27   ` Maciej Kalisiak
2003-01-20 21:51     ` * Tong *
     [not found] ` <mailman.415.1042749231.21513.help-gnu-emacs@gnu.org>
2003-01-17 18:35   ` Maciej Kalisiak
2003-01-17 19:34     ` Greg Hill
2003-01-21 17:12     ` Kevin Rodgers
2003-01-22 14:41       ` Maciej Kalisiak
2003-01-22 17:22         ` Kevin Rodgers
2003-01-22 19:53           ` Greg Hill [this message]
     [not found]           ` <mailman.807.1043265863.21513.help-gnu-emacs@gnu.org>
2003-01-22 20:49             ` Stefan Monnier <foo@acm.com>
2003-01-22 21:57             ` Kevin Rodgers
2003-01-23  5:58         ` Ittay Dror
2003-01-23 13:58           ` Maciej Kalisiak
2003-01-26  6:28             ` Ittay Dror
2003-01-26  9:47               ` Ittay Dror
2003-01-26 10:24                 ` Ittay Dror

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='p04310100ba548e55373a@[198.17.100.22]' \
    --to=ghill@synergymicro.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.