diff -r 3be3d7b4cae4 -r 8e91ec6fd0a2 move-line.el --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/move-line.el Sun Apr 03 11:26:27 2011 -0500 @@ -0,0 +1,30 @@ +;; http://www.emacswiki.org/emacs/MoveLine + +(defun move-line (n) + "Move the current line up or down by N lines." + (interactive "p") + (setq col (current-column)) + (beginning-of-line) (setq start (point)) + (end-of-line) (forward-char) (setq end (point)) + (let ((line-text (delete-and-extract-region start end))) + (forward-line n) + (insert line-text) + ;; restore point to original column in moved line + (forward-line -1) + (forward-char col))) + +(defun move-line-up (n) + "Move the current line up by N lines." + (interactive "p") + (move-line (if (null n) -1 (- n)))) + +(defun move-line-down (n) + "Move the current line down by N lines." + (interactive "p") + (move-line (if (null n) 1 n))) + +(global-set-key (kbd "M-p") 'move-line-up) +(global-set-key (kbd "M-n") 'move-line-down) + +(message "Loaded move-line function") +(provide 'move-line)