From 5167a3947fb5a713a38668414bf99c6263fc9108 Mon Sep 17 00:00:00 2001 From: Luke Hoersten Date: Sun, 3 Apr 2011 11:26:27 -0500 Subject: Added eclipse-style line moving and eshell init. --- move-line.el | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 move-line.el (limited to 'move-line.el') 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) -- cgit v1.2.3