1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00

(isearch-yank): Handle `kill' as chunk type.

(isearch-yank-kill): New command, on M-y and mouse-2.
This commit is contained in:
Richard M. Stallman 1993-10-24 04:05:22 +00:00
parent 4133ab4908
commit 30d47262d1

View File

@ -4,7 +4,7 @@
;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu>
;; |$Date: 1993/10/09 20:00:23 $|$Revision: 1.50 $
;; |$Date: 1993/10/09 20:03:33 $|$Revision: 1.51 $
;; This file is part of GNU Emacs.
@ -233,6 +233,9 @@ Default value, nil, means edit the string instead.")
(define-key map "\C-w" 'isearch-yank-word)
(define-key map "\C-y" 'isearch-yank-line)
(define-key map [mouse-2] 'isearch-yank-kill)
;; This overrides the default binding for t.
(define-key map [down-mouse-2] 'nil)
;; Bind the ASCII-equivalent "function keys" explicitly
;; if we bind their equivalents,
@ -266,6 +269,7 @@ Default value, nil, means edit the string instead.")
(define-key map "\M-n" 'isearch-ring-advance)
(define-key map "\M-p" 'isearch-ring-retreat)
(define-key map "\M-y" 'isearch-yank-kill)
(define-key map "\M-\t" 'isearch-complete)
@ -854,18 +858,23 @@ If no previous match was done, just beep."
(defun isearch-yank (chunk)
;; Helper for isearch-yank-word and isearch-yank-line
(let ((string (save-excursion
(and (not isearch-forward) isearch-other-end
(goto-char isearch-other-end))
(buffer-substring
(point)
(save-excursion
(cond
((eq chunk 'word)
(forward-word 1))
((eq chunk 'line)
(end-of-line)))
(point))))))
;; CHUNK should be word, line or kill.
(let ((string (cond
((eq chunk 'kill)
(current-kill 0))
(t
(save-excursion
(and (not isearch-forward) isearch-other-end
(goto-char isearch-other-end))
(buffer-substring
(point)
(save-excursion
(cond
((eq chunk 'word)
(forward-word 1))
((eq chunk 'line)
(end-of-line)))
(point))))))))
;; Downcase the string if not supposed to case-fold yanked strings.
(if (and isearch-case-fold-search
(eq 'not-yanks search-upper-case))
@ -880,6 +889,10 @@ If no previous match was done, just beep."
isearch-yank-flag t))
(isearch-search-and-update))
(defun isearch-yank-kill ()
"Pull string from kill ring into search string."
(interactive)
(isearch-yank 'kill))
(defun isearch-yank-word ()
"Pull next word from buffer into search string."