|
From: | Andreas Politz |
Subject: | Re: Move selection up, down |
Date: | Wed, 20 Aug 2008 02:45:02 +0200 |
User-agent: | Mozilla-Thunderbird 2.0.0.16 (X11/20080724) |
jiri.pejchal@gmail.com wrote:
Hi, in Netbeans when you press M-S-up/M-S-down you move the selected text up/down. When nothing is selected it moves the current line. With C-S-up/C-S-down you copy the selection up/down. When nothings is selected it copies the current line up/down. Is such functionality available in emacs? Jiri Pejchal
Heres some elisp. It binds M-S-up/down to commands which move the active region (with respect to columns) or the current line prefix arg lines up or down. Have fun. -ap (defun move-text-internal (arg) (cond ((and mark-active transient-mark-mode) (if (> (point) (mark)) (exchange-point-and-mark)) (let ((column (current-column)) (text (delete-and-extract-region (point) (mark)))) (forward-line arg) (move-to-column column t) (set-mark (point)) (insert text) (exchange-point-and-mark) (setq deactivate-mark nil))) (t (beginning-of-line) (when (or (> arg 0) (not (bobp))) (forward-line) (when (or (< arg 0) (not (eobp))) (transpose-lines arg)) (forward-line -1))))) (defun move-text-down (arg) "Move region (transient-mark-mode active) or current line arg lines down." (interactive "*p") (move-text-internal arg)) (defun move-text-up (arg) "Move region (transient-mark-mode active) or current line arg lines up." (interactive "*p") (move-text-internal (- arg))) (global-set-key [\M-\S-up] 'move-text-up) (global-set-key [\M-\S-down] 'move-text-down)
[Prev in Thread] | Current Thread | [Next in Thread] |