emacs-devel
[Top][All Lists]
Advanced

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

Re: isearch-yank-char


From: Juri Linkov
Subject: Re: isearch-yank-char
Date: Sat, 01 May 2004 03:15:25 +0300
User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux)

Karl Fogel <address@hidden> writes:
> Thanks!  I'll try it out.
>
> Is this your full patch?  If there's more, post it & I'll test with
> that (i.e., including the keybindings and anything else).

The full patch is below:

Index: lisp/isearch.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/isearch.el,v
retrieving revision 1.226
retrieving revision 1.227
diff -c -r1.226 -r1.227
*** lisp/isearch.el     4 Mar 2004 16:54:08 -0000       1.226
--- lisp/isearch.el     29 Apr 2004 15:28:55 -0000      1.227
***************
*** 294,300 ****
      (define-key map " " 'isearch-whitespace-chars)
      (define-key map [?\S-\ ] 'isearch-whitespace-chars)
  
!     (define-key map "\C-w" 'isearch-yank-word-or-char)
      (define-key map "\C-y" 'isearch-yank-line)
  
      ;; Define keys for regexp chars * ? |.
--- 294,302 ----
      (define-key map " " 'isearch-whitespace-chars)
      (define-key map [?\S-\ ] 'isearch-whitespace-chars)
  
!     (define-key map "\C-b" 'isearch-del-char)
!     (define-key map "\C-f" 'isearch-yank-char)
!     (define-key map "\C-w" 'isearch-yank-word)
      (define-key map "\C-y" 'isearch-yank-line)
  
      ;; Define keys for regexp chars * ? |.
***************
*** 448,459 ****
  As you type characters, they add to the search string and are found.
  The following non-printing keys are bound in `isearch-mode-map'.
  
! Type \\[isearch-delete-char] to cancel characters from end of search string.
  Type \\[isearch-exit] to exit, leaving point at location found.
  Type LFD (C-j) to match end of line.
  Type \\[isearch-repeat-forward] to search again forward,\
   \\[isearch-repeat-backward] to search again backward.
! Type \\[isearch-yank-word-or-char] to yank word from buffer onto end of 
search\
   string and search for it.
  Type \\[isearch-yank-line] to yank rest of line onto end of search string\
   and search for it.
--- 450,464 ----
  As you type characters, they add to the search string and are found.
  The following non-printing keys are bound in `isearch-mode-map'.
  
! Type \\[isearch-delete-char] to cancel last input item from end of search 
string.
! Type \\[isearch-del-char] to cancel last character from end of search string.
  Type \\[isearch-exit] to exit, leaving point at location found.
  Type LFD (C-j) to match end of line.
  Type \\[isearch-repeat-forward] to search again forward,\
   \\[isearch-repeat-backward] to search again backward.
! Type \\[isearch-yank-char] to yank character from buffer onto end of search\
!  string and search for it.
! Type \\[isearch-yank-word] to yank word from buffer onto end of search\
   string and search for it.
  Type \\[isearch-yank-line] to yank rest of line onto end of search string\
   and search for it.
***************
*** 486,492 ****
  you want to use.
  
  The above keys, bound in `isearch-mode-map', are often controlled by
!  options; do M-x apropos on search-.* to find them.
  Other control and meta characters terminate the search
   and are then executed normally (depending on `search-exit-option').
  Likewise for function keys and mouse button events.
--- 491,497 ----
  you want to use.
  
  The above keys, bound in `isearch-mode-map', are often controlled by
!  options; do \\[apropos] on search-.* to find them.
  Other control and meta characters terminate the search
   and are then executed normally (depending on `search-exit-option').
  Likewise for function keys and mouse button events.
***************
*** 789,795 ****
  \\[isearch-ring-retreat-edit] to replace the search string with the previous 
item in the search ring.
  \\[isearch-complete-edit] to complete the search string using the search ring.
  \\<isearch-mode-map>
! If first char entered is \\[isearch-yank-word-or-char], then do word search 
instead."
  
    ;; This code is very hairy for several reasons, explained in the code.
    ;; Mainly, isearch-mode must be terminated while editing and then restarted.
--- 794,800 ----
  \\[isearch-ring-retreat-edit] to replace the search string with the previous 
item in the search ring.
  \\[isearch-complete-edit] to complete the search string using the search ring.
  \\<isearch-mode-map>
! If first char entered is \\[isearch-yank-word], then do word search instead."
  
    ;; This code is very hairy for several reasons, explained in the code.
    ;; Mainly, isearch-mode must be terminated while editing and then restarted.
***************
*** 1053,1058 ****
--- 1058,1073 ----
      (isearch-pop-state))
    (isearch-update))
  
+ (defun isearch-del-char ()
+   "Discard last character and move point back.
+ If there is no previous character, just beep."
+   (interactive)
+   (if (equal isearch-string "")
+       (ding)
+     (setq isearch-string (substring isearch-string 0 -1)
+           isearch-message (mapconcat 'isearch-text-char-description
+                                      isearch-string "")))
+   (isearch-search-and-update))
  
  (defun isearch-yank-string (string)
    "Pull STRING into search string."
***************
*** 1114,1120 ****
       (buffer-substring-no-properties (point) (funcall jumpform)))))
  
  (defun isearch-yank-char ()
!   "Pull next letter from buffer into search string."
    (interactive)
    (isearch-yank-internal (lambda () (forward-char 1) (point))))
  
--- 1129,1135 ----
       (buffer-substring-no-properties (point) (funcall jumpform)))))
  
  (defun isearch-yank-char ()
!   "Pull next character from buffer into search string."
    (interactive)
    (isearch-yank-internal (lambda () (forward-char 1) (point))))

-- 
Juri Linkov
http://www.jurta.org/emacs/





reply via email to

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