Mercurial > emacs
changeset 4876:8ddcaee25a73
(isearch-yank): Handle `kill' as chunk type.
(isearch-yank-kill): New command, on M-y and mouse-2.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 24 Oct 1993 04:05:22 +0000 |
parents | 78a52ca82a71 |
children | 4c51d8a8b09f |
files | lisp/isearch.el |
diffstat | 1 files changed, 26 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/isearch.el Sun Oct 24 03:18:18 1993 +0000 +++ b/lisp/isearch.el Sun Oct 24 04:05:22 1993 +0000 @@ -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 @@ (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 @@ (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 @@ (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 @@ 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."