author | Luke Hoersten <Luke@Hoersten.org> |
Thu, 04 Jul 2013 13:46:29 -0500 | |
changeset 61 | c0319c5df048 |
parent 35 | 4a9c440b6764 |
child 65 | 839e0a541c76 |
permissions | -rw-r--r-- |
34
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
1 |
;; http://www.emacswiki.org/emacs/MoveLine |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
2 |
|
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
3 |
(defun move-line (n) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
4 |
"Move the current line up or down by N lines." |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
5 |
(interactive "p") |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
6 |
(setq col (current-column)) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
7 |
(beginning-of-line) (setq start (point)) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
8 |
(end-of-line) (forward-char) (setq end (point)) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
9 |
(let ((line-text (delete-and-extract-region start end))) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
10 |
(forward-line n) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
11 |
(insert line-text) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
12 |
;; restore point to original column in moved line |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
13 |
(forward-line -1) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
14 |
(forward-char col))) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
15 |
|
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
16 |
(defun move-line-up (n) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
17 |
"Move the current line up by N lines." |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
18 |
(interactive "p") |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
19 |
(move-line (if (null n) -1 (- n)))) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
20 |
|
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
21 |
(defun move-line-down (n) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
22 |
"Move the current line down by N lines." |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
23 |
(interactive "p") |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
24 |
(move-line (if (null n) 1 n))) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
25 |
|
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
26 |
(global-set-key (kbd "M-p") 'move-line-up) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
27 |
(global-set-key (kbd "M-n") 'move-line-down) |
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
28 |
|
35
4a9c440b6764
Moved 3rd party libs to separate dir and added optional scion haskell support.
Luke Hoersten <Luke@Hoersten.org>
parents:
34
diff
changeset
|
29 |
(message "Loading move-line...done") |
34
8e91ec6fd0a2
Added eclipse-style line moving and eshell init.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff
changeset
|
30 |
(provide 'move-line) |