emacs-devel
[Top][All Lists]
Advanced

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

Re: Simple isearch concerns


From: Gregory Heytings
Subject: Re: Simple isearch concerns
Date: Sat, 10 Apr 2021 23:55:50 +0000



I get much better scrolling experience with these properties:

(put 'scroll-up-command 'isearch-motion
    '((lambda () (goto-char (window-end)) (recenter 1 t)) . forward))
(put 'scroll-down-command 'isearch-motion
    '((lambda () (goto-char (window-start)) (recenter -1 t)) . backward))

so only new unseen matches are highlighted.


Indeed, I tried them, and I agree with you that these properties give a better experience.

+        (when (and isearch-success (not isearch-motion-changes-direction))
+          (unless (eq direction current-direction)
+            (let ((isearch-repeat-on-direction-change nil))
+              (isearch-repeat current-direction))))

This 'isearch-repeat' is broken when the new option 'isearch-repeat-on-direction-change' is customized to t.


Fixed.


Also in this case the old commands isearch-beginning-of-buffer and isearch-end-of-buffer are broken too. Maybe you need to wrap their calls of 'isearch-repeat' with

   (let ((isearch-repeat-on-direction-change nil))
     (isearch-repeat 'forward arg))


Indeed, it is necessary to let-bind isearch-repeat-on-direction-change to nil there, like elsewhere. I attach a separate patch, because it's not related to the isearch-allow-motion patch.

Attachment: 0001-New-user-options-to-move-between-isearch-matches.patch
Description: Text Data

Attachment: 0001-Fix-behavior-of-isearch-beginning-end-of-buffer.patch
Description: Text Data


reply via email to

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