lisp/move-line.el
changeset 70 88c4f68cb191
parent 65 839e0a541c76
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/move-line.el	Wed Nov 19 18:45:01 2014 -0600
@@ -0,0 +1,27 @@
+;; 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)))
+
+(message "Loading move-line...done")
+(provide 'move-line)