aboutsummaryrefslogtreecommitdiff
path: root/home-manager/homeModules/emacs/config.org
diff options
context:
space:
mode:
authorspl3g <spleefer6@yandex.ru>2024-11-17 13:25:34 +0300
committerspl3g <spleefer6@yandex.ru>2025-05-01 14:58:56 +0300
commit97558b6c91469edef88a81d9ea6a7d531a48011e (patch)
treeb4f8d14f75c275395e51888beda62206ddfbfb1f /home-manager/homeModules/emacs/config.org
parent27b523a31cc6983821e22b04dba51358234e4548 (diff)
feat: add devil mode
Diffstat (limited to 'home-manager/homeModules/emacs/config.org')
-rw-r--r--home-manager/homeModules/emacs/config.org232
1 files changed, 129 insertions, 103 deletions
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 <backspace>") ("%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)
- '("<escape>" . 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)
- '("<escape>" . 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)
+ ;; '("<escape>" . 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)
+ ;; '("<escape>" . ignore)))
+ ;; (meow-setup)
+ ;; (meow-global-mode 1))
#+end_src
** General keybindings
#+begin_src emacs-lisp