move-line.el
author Luke Hoersten <Luke@Hoersten.org>
Mon, 16 May 2011 21:07:24 -0500
changeset 39 5a7c0a0cab49
parent 35 4a9c440b6764
child 65 839e0a541c76
permissions -rw-r--r--
Cleaned up broken python mode stuff.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)