From 2daf95714f49dbb89cae60fae2e95d287f80bf7c Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Tue, 11 Nov 2014 13:28:12 +0100 Subject: [PATCH] move current line up or down with M-p and M-n. Signed-off-by: Andreas Gerler --- bba.org | 49 ++++++++++++++++++++++++++++++++----------------- org/emacs.org | 9 +++++++-- 2 files changed, 39 insertions(+), 19 deletions(-) diff --git a/bba.org b/bba.org index 5fea789f..c178a223 100644 --- a/bba.org +++ b/bba.org @@ -1119,6 +1119,38 @@ safe files with #! in first line as user executable. #+END_SRC +*** move lines + [2014-11-11 Tue 12:24] + +=M-p= and =M-n= to move current line up or down. + +#+BEGIN_SRC emacs-lisp + (defun bba/move-line (n) + "Move the current line up or down by N lines." + (interactive "p") + (let* ((column (current-column)) + (start (progn (beginning-of-line) (point))) + (end (progn (end-of-line) (forward-char) (point))) + (line-text (delete-and-extract-region start end))) + (forward-line n) + (insert line-text) + (forward-line -1) + (forward-char column))) + + (defun bba/move-line-up (n) + "Move the current line up by N lines." + (interactive "p") + (bba/move-line (if (null n) -1 (- n)))) + + (defun bba/move-line-down (n) + "Move the current line down by N lines." + (interactive "p") + (bba/move-line (if (null n) 1 n))) + + (define-key global-map (kbd "M-p") 'bba/move-line-up) + (global-set-key (kbd "M-n") 'bba/move-line-down) + +#+END_SRC *** key bindings #+BEGIN_SRC emacs-lisp (define-key global-map "\C-x\S-f" 'find-file-at-point) @@ -1184,23 +1216,6 @@ function to convert groups of spaces to hard tabs. (define-key global-map (kbd "C-+") 'text-scale-increase) (define-key global-map (kbd "C--") 'text-scale-decrease) - ;; NUMBERIC KEYPAD. nice number pad conveniences as extra function keys - - ;; (global-set-key (kbd "") 'ergoemacs-close-current-buffer) - ;; (global-set-key (kbd "") 'ergoemacs-previous-user-buffer) - ;; (global-set-key (kbd "") 'ergoemacs-next-user-buffer) - - ;; (global-set-key (kbd "") 'ergoemacs-previous-emacs-buffer) - ;; (global-set-key (kbd "") 'ergoemacs-next-emacs-buffer) - - ;; (global-set-key (kbd "") 'other-window) - ;; (global-set-key (kbd "") 'delete-window) - ;; (global-set-key (kbd "") 'delete-other-windows) - ;; (global-set-key (kbd "") 'split-window-vertically) - ;; (global-set-key (kbd "") 'xah-open-file-at-cursor) - - ;; (global-set-key (kbd "") 'isearch-forward) - #+END_SRC =isearch-forward-regexp= is much more useful than =isearch-forward= so diff --git a/org/emacs.org b/org/emacs.org index a4791ac1..843330a1 100644 --- a/org/emacs.org +++ b/org/emacs.org @@ -19,10 +19,13 @@ | F4 | next-buffer | |-------------------+-------------------------------------------------------------------------------------------| | C-c t f | toggle auto-fill-mode | +| C-c t i | toggle impatient-mode | | C-c t p | toggle smartparens-mode | | C-c t s | toggle flyspell-mode | -| C-c t w | toggle which-function-mode | +| C-c t W | toggle which-function-mode | +| C-c t w | toggle whitespace-mode | |-------------------+-------------------------------------------------------------------------------------------| +| C-x l b | browse-url-at-point | | C-x l c | calculator | | C-x l d | ediff-buffers | | C-x l i | ielm | @@ -30,9 +33,11 @@ | C-x l S | synonyms | | C-x l t | git-timemachine | |-------------------+-------------------------------------------------------------------------------------------| +| M-p | move current line up | +| M-n | move current line down | +|-------------------+-------------------------------------------------------------------------------------------| | F11 | org-clock-goto | | C-F11 | org-clock-in | -| C-c F12 | toogle Whitespace mode | | F12 | org-agenda | |-------------------+-------------------------------------------------------------------------------------------| | C-c a | org-agenda | -- 2.47.3