[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: non-continuous selection?
From: |
lakerhy |
Subject: |
Re: non-continuous selection? |
Date: |
Sun, 1 Mar 2009 09:14:10 -0800 (PST) |
User-agent: |
G2/1.0 |
On Mar 1, 3:31 pm, Marc Tfardy <m-t-o___CUT_...@web.de> wrote:
> lakerhy schrieb:
> > is there any method to get a non-continous selection?
> >
> > for example, if the text is as following:
> >
> > 123
> > 456
> > 789
> >
> > I want to select 1 5 9 which is not continous or in a rectangle. How
> > this could be done?
>
> Do you want select "1", then "5" and then "9" and then paste all
> together at one shot "159"? This small and simple function do this:
>
> (defun insert-collected-kill-ring (count)
> "Collect COUNT items from kill-ring and insert into buffer."
> (interactive "p")
> (if (>= (length kill-ring) count)
> (progn
> (let ((n (- count 1))
> (str ""))
> (while (>= n 0)
> (setq str (concat str (substring-no-properties (nth n
> kill-ring))))
> (setq n (1- n)))
> (insert str)))
> (error "No enough items in kill-ring")))
>
> You must select n piece of text, for each one do "copy" (M-w) and then
> call insert-collected-kill-ring with numeric argument. For your example:
> C-u 3 M-x insert-collected-kill-ring.
>
> Please note that this function inserts oldest first, but this is often
> what one expect so you get "159" and not "951".
>
> HTH
>
> regards
> Marc
Thanks, this ring collection function do help at certain
circumstances. But most of time, I would like to kill the non-
continous at one stroke rather than one by one, just like the utility
provided by ctrl in Windows.