From 97558b6c91469edef88a81d9ea6a7d531a48011e Mon Sep 17 00:00:00 2001 From: spl3g Date: Sun, 17 Nov 2024 13:25:34 +0300 Subject: feat: add devil mode --- home-manager/homeModules/emacs/config.org | 232 +++++++++++++++++------------- 1 file changed, 129 insertions(+), 103 deletions(-) (limited to 'home-manager') diff --git a/home-manager/homeModules/emacs/config.org b/home-manager/homeModules/emacs/config.org index 3551f7c..2a50702 100644 --- a/home-manager/homeModules/emacs/config.org +++ b/home-manager/homeModules/emacs/config.org @@ -9,6 +9,7 @@ - [[#from-minimal-emacsd][From minimal-emacs.d]] - [[#no-littering][No littering]] - [[#save-history][Save history]] + - [[#devil-mode][Devil mode]] - [[#meow-mode][Meow mode]] - [[#general-keybindings][General keybindings]] - [[#which-key][Which key]] @@ -355,111 +356,136 @@ the precise point where you previously left off. :config (savehist-mode t)) #+end_src -** Meow mode +** Devil mode #+begin_src emacs-lisp - (use-package meow + (use-package devil + :custom + (devil-repeatable-keys '(("%k m {" "%k m }") ;; next/previous paragraph + ("%k /") ("%k _") ("%k m _") ;; undo/redo + ("%k v") ("%k m v") ;; down/up screen + ("%k d") ("%k m ") ("%k m m k") ;; delete word/sexp + ("%k x o") ("%k m o") ;; switch window + ("%k m m f" "%k m m b") ;; back/forward sexp + ("%k k") ;; kill line + ("%k m ^") ;; delete indentation + ("%k m e") ;; end of sentance + ("%k m b" "%k m f" "%k m a" "%k m e") ;; by word movement + ("%k m @" "%k m h") ("%k m m @") ;; select word/sexp/paragraph + ("%k m y") ;; yank pop + ("%k p" "%k n" "%k b" "%k f" "%k a" "%k e") ;; movement + ("%k s" "%k r") ;; search + ("%k m m s" "%k m m r") ;; regexp search + ("%k x [" "%k x ]") ;; i don't know + ("%k x ^" "%k x {" "%k x }") ;; shrink/enlarge window + )) :config - (defun meow-negative-find () - "Find text backward." - (interactive) - (let ((current-prefix-arg -1)) - (call-interactively #'meow-find))) - - (defun meow-negative-till () - "Find text backward." - (interactive) - (let ((current-prefix-arg -1)) - (call-interactively #'meow-till))) - (defun meow-setup () - (setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty) - (meow-motion-overwrite-define-key - '("j" . meow-next) - '("k" . meow-prev) - '("" . ignore)) - (meow-leader-define-key - ;; SPC j/k will run the original command in MOTION state. - '("j" . "H-j") - '("k" . "H-k") - ;; Use SPC (0-9) for digit arguments. - '("1" . meow-digit-argument) - '("2" . meow-digit-argument) - '("3" . meow-digit-argument) - '("4" . meow-digit-argument) - '("5" . meow-digit-argument) - '("6" . meow-digit-argument) - '("7" . meow-digit-argument) - '("8" . meow-digit-argument) - '("9" . meow-digit-argument) - '("0" . meow-digit-argument) - '("/" . meow-keypad-describe-key) - '("?" . meow-cheatsheet) - '("bk" . kill-this-buffer)) - (meow-normal-define-key - '("0" . meow-expand-0) - '("9" . meow-expand-9) - '("8" . meow-expand-8) - '("7" . meow-expand-7) - '("6" . meow-expand-6) - '("5" . meow-expand-5) - '("4" . meow-expand-4) - '("3" . meow-expand-3) - '("2" . meow-expand-2) - '("1" . meow-expand-1) - '("-" . negative-argument) - '(";" . meow-reverse) - '("," . meow-inner-of-thing) - '("." . meow-bounds-of-thing) - '("[" . meow-beginning-of-thing) - '("]" . meow-end-of-thing) - '("a" . meow-append) - '("A" . meow-open-below) - '("b" . meow-back-word) - '("B" . meow-back-symbol) - '("c" . meow-change) - '("d" . meow-delete) - '("D" . meow-backward-delete) - '("e" . meow-next-word) - '("E" . meow-next-symbol) - '("f" . meow-find) - '("F" . meow-negative-find) - '("g" . meow-cancel-selection) - '("G" . meow-grab) - '("h" . meow-left) - '("H" . meow-left-expand) - '("i" . meow-insert) - '("I" . meow-open-above) - '("j" . meow-next) - '("J" . meow-next-expand) - '("k" . meow-prev) - '("K" . meow-prev-expand) - '("l" . meow-right) - '("L" . meow-right-expand) - '("m" . meow-join) - '("n" . meow-search) - '("o" . meow-block) - '("O" . meow-to-block) - '("p" . meow-yank) - '("q" . meow-quit) - '("Q" . meow-goto-line) - '("r" . meow-replace) - '("R" . meow-swap-grab) - '("s" . meow-kill) - '("t" . meow-till) - '("T" . meow-negative-till) - '("u" . meow-undo) - '("U" . meow-undo-in-selection) - '("v" . meow-visit) - '("w" . meow-mark-word) - '("W" . meow-mark-symbol) - '("x" . meow-line) - '("X" . meow-goto-line) - '("y" . meow-save) - '("Y" . meow-sync-grab) - '("z" . meow-pop-selection) - '("'" . repeat) - '("" . ignore))) - (meow-setup) - (meow-global-mode 1)) + (global-devil-mode)) +#+end_src +** Meow mode +#+begin_src emacs-lisp + ;; (use-package meow + ;; :config + ;; (defun meow-negative-find () + ;; "Find text backward." + ;; (interactive) + ;; (let ((current-prefix-arg -1)) + ;; (call-interactively #'meow-find))) + ;; + ;; (defun meow-negative-till () + ;; "Find text backward." + ;; (interactive) + ;; (let ((current-prefix-arg -1)) + ;; (call-interactively #'meow-till))) + ;; (defun meow-setup () + ;; (setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty) + ;; (meow-motion-overwrite-define-key + ;; '("j" . meow-next) + ;; '("k" . meow-prev) + ;; '("" . ignore)) + ;; (meow-leader-define-key + ;; ;; SPC j/k will run the original command in MOTION state. + ;; '("j" . "H-j") + ;; '("k" . "H-k") + ;; ;; Use SPC (0-9) for digit arguments. + ;; '("1" . meow-digit-argument) + ;; '("2" . meow-digit-argument) + ;; '("3" . meow-digit-argument) + ;; '("4" . meow-digit-argument) + ;; '("5" . meow-digit-argument) + ;; '("6" . meow-digit-argument) + ;; '("7" . meow-digit-argument) + ;; '("8" . meow-digit-argument) + ;; '("9" . meow-digit-argument) + ;; '("0" . meow-digit-argument) + ;; '("/" . meow-keypad-describe-key) + ;; '("?" . meow-cheatsheet) + ;; '("bk" . kill-this-buffer)) + ;; (meow-normal-define-key + ;; '("0" . meow-expand-0) + ;; '("9" . meow-expand-9) + ;; '("8" . meow-expand-8) + ;; '("7" . meow-expand-7) + ;; '("6" . meow-expand-6) + ;; '("5" . meow-expand-5) + ;; '("4" . meow-expand-4) + ;; '("3" . meow-expand-3) + ;; '("2" . meow-expand-2) + ;; '("1" . meow-expand-1) + ;; '("-" . negative-argument) + ;; '(";" . meow-reverse) + ;; '("," . meow-inner-of-thing) + ;; '("." . meow-bounds-of-thing) + ;; '("[" . meow-beginning-of-thing) + ;; '("]" . meow-end-of-thing) + ;; '("a" . meow-append) + ;; '("A" . meow-open-below) + ;; '("b" . meow-back-word) + ;; '("B" . meow-back-symbol) + ;; '("c" . meow-change) + ;; '("d" . meow-delete) + ;; '("D" . meow-backward-delete) + ;; '("e" . meow-next-word) + ;; '("E" . meow-next-symbol) + ;; '("f" . meow-find) + ;; '("F" . meow-negative-find) + ;; '("g" . meow-cancel-selection) + ;; '("G" . meow-grab) + ;; '("h" . meow-left) + ;; '("H" . meow-left-expand) + ;; '("i" . meow-insert) + ;; '("I" . meow-open-above) + ;; '("j" . meow-next) + ;; '("J" . meow-next-expand) + ;; '("k" . meow-prev) + ;; '("K" . meow-prev-expand) + ;; '("l" . meow-right) + ;; '("L" . meow-right-expand) + ;; '("m" . meow-join) + ;; '("n" . meow-search) + ;; '("o" . meow-block) + ;; '("O" . meow-to-block) + ;; '("p" . meow-yank) + ;; '("q" . meow-quit) + ;; '("Q" . meow-goto-line) + ;; '("r" . meow-replace) + ;; '("R" . meow-swap-grab) + ;; '("s" . meow-kill) + ;; '("t" . meow-till) + ;; '("T" . meow-negative-till) + ;; '("u" . meow-undo) + ;; '("U" . meow-undo-in-selection) + ;; '("v" . meow-visit) + ;; '("w" . meow-mark-word) + ;; '("W" . meow-mark-symbol) + ;; '("x" . meow-line) + ;; '("X" . meow-goto-line) + ;; '("y" . meow-save) + ;; '("Y" . meow-sync-grab) + ;; '("z" . meow-pop-selection) + ;; '("'" . repeat) + ;; '("" . ignore))) + ;; (meow-setup) + ;; (meow-global-mode 1)) #+end_src ** General keybindings #+begin_src emacs-lisp -- cgit v1.2.3