help-gnu-emacs
[Top][All Lists]
Advanced

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

RE: Incremental search don't append wrongly typed characters


From: Drew Adams
Subject: RE: Incremental search don't append wrongly typed characters
Date: Wed, 12 Dec 2012 18:53:30 -0800

>>> Drew, thanks for the answer. Unfortunately I need a different
>>> behavior in my particular case. I was proposed with similar
>>> work-around also on stack overflow. Though, I'm often using
>>> incremental search for query specific tags in a large text file
>>> which is used like database system with help of some configuration
>>> and scripts. Before each incremental search there is a macro
>>> which places me to BOF and afterwards starts incremental search.
>>> For this scheme it would be very convenient just not to append
>>> mismatched part at all. I understand that it's not that standard
>>> feature and I use different approach when let's say coding or
>>> typing text but again for this particular case I need the
>>> mentioned behavior. It will save me some additional clicks to
>>> backspace and/or c-s  c-g. In other words: I'm  looking for a
>>> way of not showing mismatched characters during incremental search.
>>> Thanks a lot for your time.
>>
>> But I think that what I described: a key that deletes the
>> mismatched portion, might actually solve your problem of
>> searching within a keyboard macro. When defining the macro,
>> you could presumably just hit that key when typing the search
>> string is "done".  If there is no mismatched portion for a
>> given search, then the key would do nothing.
>>
>> However, the interactive part of using your macro wrt
>> searching is not really clear to me. So maybe I'm missing something.
>>
>> Anyway, such a key does not exist yet, but if I get some time
>> I'll try to come up with it. Or perhaps someone else (you?)
>> will beat me to it.  Look in isearch.el for the part of the
>> code that identifies the mismatched portion for highlighting,
>> or the part of `isearch-edit-string' that moves the cursor to the
>> mismatch beginning.  HTH.
>
> Of course, `C-g' removes the mismatch portion. But if there
> is no mismatch portion then it cancels searching, instead of
> being a no-op.

This command removes the mismatch part and is a no-op if there is no mismatch.
 
(defun foo ()
  "..."
  (interactive)
  (while (or (not isearch-success)
             (if (boundp 'isearch-error)
                 isearch-error
               isearch-invalid-regexp))
    (isearch-pop-state))
  (isearch-update))
 
(define-key isearch-mode-map "\C-o" 'foo)




reply via email to

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