[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
yanking a killed or saved region with a single mouse gesture
From: |
Manoj Srivastava |
Subject: |
yanking a killed or saved region with a single mouse gesture |
Date: |
Tue, 15 Apr 2008 00:21:28 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) (x86_64-unknown-linux-gnu) |
Hi,
I've the years, I have grown fond of the ability to save (or
kill) a region, and optionally yank it, using a single mouse gesture.
I think this used to be in Emacs a long time ago, and I have retained
he feature for personal use.
--8<---------------cut here---------------start------------->8---
(define-key global-map [drag-mouse-2] 'mouse-save-drag)
(define-key global-map [drag-mouse-3] 'mouse-yank-drag)
(define-key global-map [S-drag-mouse-2] 'mouse-kill-drag)
(define-key global-map [S-drag-mouse-3] 'mouse-kill-and-yank-drag)
--8<---------------cut here---------------end--------------->8---
So mouse 2 saves, mouse 3 yanks the saved region, and holding
down the shift key kills instead of saves.
Would this be something that could be added back into emacs? Or
is this too esoteric?
manoj
(defun mouse-yank-drag (click arg)
"Yank the region the mouse was dragged at at point"
(interactive "e\nP")
(save-excursion
(let* ((start-posn (posn-point (event-start click)))
(end-posn (posn-point (event-end click)))
(start-window (posn-window (event-start click)))
)
(save-window-excursion
(select-window start-window)
(kill-new (buffer-substring start-posn end-posn))
)))
(yank arg))
(defun mouse-save-drag (click)
"kill the region the mouse was dragged at at point"
(interactive "e")
(save-excursion
(let* ((start-posn (posn-point (event-start click)))
(end-posn (posn-point (event-end click)))
(start-window (posn-window (event-start click)))
)
(save-window-excursion
(select-window start-window)
(kill-new (buffer-substring start-posn end-posn))
)))
)
(defun mouse-kill-drag (click)
"kill the region the mouse was dragged at at point"
(interactive "e")
(save-excursion
(let* ((start-posn (posn-point (event-start click)))
(end-posn (posn-point (event-end click)))
(start-window (posn-window (event-start click)))
)
(save-window-excursion
(select-window start-window)
(kill-new (buffer-substring start-posn end-posn))
(delete-region start-posn end-posn)
))))
(defun mouse-kill-and-yank-drag (click arg)
"kill the region the mouse was dragged at at point"
(interactive "e\nP")
(save-excursion
(let* ((start-posn (posn-point (event-start click)))
(end-posn (posn-point (event-end click)))
(start-window (posn-window (event-start click)))
)
(save-window-excursion
(select-window start-window)
(kill-new (buffer-substring start-posn end-posn))
(delete-region start-posn end-posn)
)))
(yank arg))
--
Thus spake the master programmer: "Time for you to leave." -- Geoffrey
James, "The Tao of Programming"
Manoj Srivastava <address@hidden> <http://www.golden-gryphon.com/>
1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C
- yanking a killed or saved region with a single mouse gesture,
Manoj Srivastava <=