unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Lennart Borgman <lennart.borgman.073@student.lu.se>
Cc: emacs-devel@gnu.org
Subject: Re: Patch that adds help to isearch
Date: Sun, 27 Nov 2005 23:53:38 +0100	[thread overview]
Message-ID: <438A38F2.5010409@student.lu.se> (raw)
In-Reply-To: <E1EfraK-0003ga-JN@fencepost.gnu.org>

[-- Attachment #1: Type: text/plain, Size: 3342 bytes --]

Richard M. Stallman wrote:

>    Some months ago we discussed help for isearch-forward/backward. I tried 
>    several alternatives at that time, but did not send in any patch. The 
>    attached patch is a simple way to give help. It simply defines C-h and 
>    f1 to call isearch-mode-help
>
>I don't want to make such a change now, and perhaps not ever.  Too
>many control characters are special already in isearch.  (I turned off
>one of them a couple of months ago.)
>  
>
I read in the code

    ;; Turned off because I find I expect to get the global definition--rms.
    ;; ;; Instead bind C-h to special help command for isearch-mode.
    ;; (define-key map "\C-h" 'isearch-mode-help)

I started working on that some months ago but gave up. It was rather 
complicated to stay in isearch-mode and do this and take care of 
different window configurations etc. I thought it was not worth the 
trouble and in the case of isearch-mode I also found it more helpful 
with the isearch-mode-help.

The change I proposed is simple and I do not beleive it will be any 
problem to remove it later if we decide so. However for all Emacs users 
that do not know the details of isearch-mode (like myself) I think it is 
very useful. Some keys are however used:

1) The help keys (C-h and f1). This of course blocks the global 
definition, but is this a problem here?

2) Scroll other window up or down. Keys bound to those keys are used for 
scrolling the help window, but only if the other window is displaying 
the help buffer.

I do not want to argue but I want to be clear.


>    I also found some small errors which I tried to correct. This was 
>    something with the isearch-ring but I can not remember the details right 
>    now. I included that also in the patch however.
>
>Can you please separate those bug fixes out
>and explain the bugs they fix?
>  
>
I looked at my old bug fixes but these are some months old. What I 
wanted to fix was the history handling for isearch edit. My old fix did 
not work any more so I have made a new one which I attach. This does a 
few things:

1) M-p shows the last used value saved in the history list for isearch 
(called `search-ring') when entering minibuff editing.
2) M-n shows an empty string in this case.
3) The default for editing is just the empty string, not the first 
string in the history list like now.

I might have misunderstood something here, so please test.

I believe there was a typo too. A lonely (quit ...).

>    I renamed search-ring-update to isearch-ring-update which seems more 
>    consistent. Maybe that should not be done if that breaks something?
>
>I don't want to change these names now.
>  
>
Ok. Could the isearch-mode-help be changed a bit instead? Currently it 
tells you to do

   M-x apropos RET, search-.* RET

That gives a lot of unwanted hits. I suggest to give a hint to use

   M-x customize-group RET, isearch RET

instead.

>    BTW I think there may be some useful key definitions missing in the 
>    help. Could you for example not switch the direction with C-r? Should 
>    not that be added to the help?
>
>Could you be more specific about the change you mean?
>  
>
Sorry, my mistake. It is actually the second time I do this I remember 
now. I did not find C-r in the help text because is it not in the left 
margin, but it is there.




[-- Attachment #2: isearch-hist.diff --]
[-- Type: text/plain, Size: 3919 bytes --]


Index: isearch.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/isearch.el,v
retrieving revision 1.276
diff -c -r1.276 isearch.el
*** isearch.el	24 Nov 2005 09:59:11 -0000	1.276
--- isearch.el	27 Nov 2005 22:28:09 -0000
***************
*** 1035,1041 ****
                         (isearch-message-prefix nil nil isearch-nonincremental)
                         isearch-string
                         minibuffer-local-isearch-map nil
!                        (if isearch-regexp 'regexp-search-ring 'search-ring)
                         nil t)
  		      isearch-new-message
  		      (mapconcat 'isearch-text-char-description
--- 1035,1043 ----
                         (isearch-message-prefix nil nil isearch-nonincremental)
                         isearch-string
                         minibuffer-local-isearch-map nil
!                        (cons 
!                         (if isearch-regexp 'regexp-search-ring 'search-ring)
!                         1)
                         nil t)
  		      isearch-new-message
  		      (mapconcat 'isearch-text-char-description
***************
*** 1054,1068 ****
  		  isearch-word isearch-new-word))
  
  	  ;; Empty isearch-string means use default.
! 	  (if (= 0 (length isearch-string))
! 	      (setq isearch-string (or (car (if isearch-regexp
! 						regexp-search-ring
! 					      search-ring))
! 				       "")
! 
! 		    isearch-message
! 		    (mapconcat 'isearch-text-char-description
! 			       isearch-string ""))
  	    ;; This used to set the last search string,
  	    ;; but I think it is not right to do that here.
  	    ;; Only the string actually used should be saved.
--- 1056,1071 ----
  		  isearch-word isearch-new-word))
  
  	  ;; Empty isearch-string means use default.
!           ;; Why should it mean default?
! ;; 	  (if (= 0 (length isearch-string))
! ;; 	      (setq isearch-string (or (car (if isearch-regexp
! ;; 						regexp-search-ring
! ;; 					      search-ring))
! ;; 				       "")
! 
! ;; 		    isearch-message
! ;; 		    (mapconcat 'isearch-text-char-description
! ;; 			       isearch-string ""))
  	    ;; This used to set the last search string,
  	    ;; but I think it is not right to do that here.
  	    ;; Only the string actually used should be saved.
***************
*** 1081,1091 ****
  	      ;; The search done message is confusing when the string
  	      ;; is empty, so erase it.
  	      (if (equal isearch-string "")
! 		  (message "")))))
  
!     (quit  ; handle abort-recursive-edit
!      (isearch-abort)  ;; outside of let to restore outside global values
!      )))
  
  (defun isearch-nonincremental-exit-minibuffer ()
    (interactive)
--- 1084,1094 ----
  	      ;; The search done message is confusing when the string
  	      ;; is empty, so erase it.
  	      (if (equal isearch-string "")
! 		  (message ""))))
  
!         (quit  ; handle abort-recursive-edit
!          (isearch-abort)  ;; outside of let to restore outside global values
!          ))))
  
  (defun isearch-nonincremental-exit-minibuffer ()
    (interactive)
***************
*** 1833,1842 ****
  	()
        (set yank-pointer-name
  	   (setq yank-pointer
! 		 (mod (+ (or yank-pointer 0)
! 			 (if advance -1 1))
! 		      length)))
!       (setq isearch-string (nth yank-pointer ring)
  	    isearch-message (mapconcat 'isearch-text-char-description
  				       isearch-string "")))))
  
--- 1836,1847 ----
  	()
        (set yank-pointer-name
  	   (setq yank-pointer
!                  (if yank-pointer
!                      (mod (+ yank-pointer
!                              (if advance -1 1))
!                           length)
!                    (if advance -1 0))))
!       (setq isearch-string (if (< yank-pointer 0) "" (nth yank-pointer ring))
  	    isearch-message (mapconcat 'isearch-text-char-description
  				       isearch-string "")))))
  

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

  reply	other threads:[~2005-11-27 22:53 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-24 23:02 Patch that adds help to isearch Lennart Borgman
2005-11-26  4:22 ` Richard M. Stallman
2005-11-27 22:53   ` Lennart Borgman [this message]
2005-11-28  7:21     ` Lennart Borgman
2005-11-29  9:04   ` Juri Linkov
2005-11-29 21:47     ` Richard M. Stallman
2005-11-29 22:12       ` Lennart Borgman
2005-11-30  2:48         ` Juri Linkov
  -- strict thread matches above, loose matches on Subject: below --
2005-11-29 10:23 LENNART BORGMAN
2005-11-30  2:47 ` Juri Linkov
2005-11-30  8:24   ` Lennart Borgman
2005-11-30 15:34     ` Juri Linkov
2005-11-30 22:27       ` Lennart Borgman

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=438A38F2.5010409@student.lu.se \
    --to=lennart.borgman.073@student.lu.se \
    --cc=emacs-devel@gnu.org \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).