src.nth.io/

summaryrefslogtreecommitdiff
path: root/move-line.el
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2011-04-03 11:26:27 -0500
committerLuke Hoersten <[email protected]>2011-04-03 11:26:27 -0500
commit5167a3947fb5a713a38668414bf99c6263fc9108 (patch)
tree06f1d9d09c07115315affa8186011792d496e7db /move-line.el
parentba850febdc5647f8a2e3bbb98994c5d3f8b6acf2 (diff)
Added eclipse-style line moving and eshell init.
Diffstat (limited to 'move-line.el')
-rw-r--r--move-line.el30
1 files changed, 30 insertions, 0 deletions
diff --git a/move-line.el b/move-line.el
new file mode 100644
index 0000000..6020a63
--- /dev/null
+++ b/move-line.el
@@ -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)