From 5aec6298cfc2ca9889f9fababf5d38281ce0a192 Mon Sep 17 00:00:00 2001
From: Aryadev Chavali <aryadev@aryadevchavali.com>
Date: Tue, 23 Apr 2024 01:40:07 +0530
Subject: (Emacs/config|core)+move-line-{up|down}

---
 Emacs/.config/emacs/config.org | 21 +++++++++++++++++++++
 Emacs/.config/emacs/core.org   |  5 +++++
 2 files changed, 26 insertions(+)

(limited to 'Emacs/.config/emacs')

diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org
index 8d2c83d..9df46d4 100644
--- a/Emacs/.config/emacs/config.org
+++ b/Emacs/.config/emacs/config.org
@@ -184,6 +184,27 @@ any buffers in ~+oreo/keep-buffer~ and kills the rest.
                   (kill-buffer buf)))
           (buffer-list)))
 #+end_src
+** Move line {up/down}
+Shamelessly copied from
+[[https://emacsredux.com/blog/2013/04/02/move-current-line-up-or-down/][this
+article]].  Will be bound in [[file:core.org::*Some binds in
+Emacs][core.org]].
+#+begin_src emacs-lisp
+(defun move-line-up ()
+  "Move up the current line."
+  (interactive)
+  (transpose-lines 1)
+  (forward-line -2)
+  (indent-according-to-mode))
+
+(defun move-line-down ()
+  "Move down the current line."
+  (interactive)
+  (forward-line 1)
+  (transpose-lines 1)
+  (forward-line -1)
+  (indent-according-to-mode))
+#+end_src
 * Aesthetics
 General look and feel of Emacs (mostly disabling stuff I don't like).
 ** Themes
diff --git a/Emacs/.config/emacs/core.org b/Emacs/.config/emacs/core.org
index bc3a2cd..b0d7e2f 100644
--- a/Emacs/.config/emacs/core.org
+++ b/Emacs/.config/emacs/core.org
@@ -118,6 +118,11 @@ Some bindings that I couldn't fit elsewhere easily.
   :general
   ("C-x d" #'delete-frame)
 
+  (nmmap
+    :keymaps 'override
+    "C-M-j" #'move-line-down
+    "C-M-k" #'move-line-up)
+
   (nmmap
     "C--" #'text-scale-decrease
     "C-=" #'text-scale-increase
-- 
cgit v1.2.3-13-gbd6f