src.nth.io/

summaryrefslogtreecommitdiff
path: root/lisp/move-line.el
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2014-11-19 18:45:01 -0600
committerLuke Hoersten <[email protected]>2014-11-19 18:45:01 -0600
commit08c5c139bd0e6bbca01870bce66dd4eaddca747e (patch)
treebf2b2c9f0d0873cbbe9509e9c63b804f7a3c15e8 /lisp/move-line.el
parent64e2e855eb6ef29970a1edabf84ed81c5e855a56 (diff)
Moved lisp files to their own dir.
Diffstat (limited to 'lisp/move-line.el')
-rw-r--r--lisp/move-line.el27
1 files changed, 27 insertions, 0 deletions
diff --git a/lisp/move-line.el b/lisp/move-line.el
new file mode 100644
index 0000000..7986715
--- /dev/null
+++ b/lisp/move-line.el
@@ -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)