Moved modal section into its own file.
This commit is contained in:
118
config/modal.org
Normal file
118
config/modal.org
Normal file
@@ -0,0 +1,118 @@
|
||||
* Modal Editing
|
||||
|
||||
I like using =vi= inspired modal editing. For a while I tried project evil, but
|
||||
I had issues keeping up with all the binding management. This is how I came to
|
||||
start using [[https://github.com/meow-edit/meow][meow]]. Aside from motions and a few other changes the meow system
|
||||
mostly keeps emacs bindings similar, and also accessible via space. This
|
||||
way you can switch between meow, and emacs bindings pretty seemlessly.
|
||||
|
||||
Here are my bindings which come from the Meow wiki. It is /mostly/ akin to
|
||||
=vi= bindings. Though deletion and line editing are a good deal different.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defun meow-setup ()
|
||||
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
|
||||
|
||||
(dolist (state '((notmuch-hello-mode . motion)
|
||||
(notmuch-search-mode . motion)
|
||||
(notmuch-tree-mode . motion)
|
||||
(notmuch-show-mode . motion)))
|
||||
(add-to-list 'meow-mode-state-list state))
|
||||
|
||||
(meow-motion-define-key
|
||||
'("j" . meow-next)
|
||||
'("k" . meow-prev)
|
||||
'("<escape>" . ignore))
|
||||
(meow-leader-define-key
|
||||
;; 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))
|
||||
(meow-normal-define-key
|
||||
'("C-," . major-mode-hydra)
|
||||
'("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)
|
||||
'("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)
|
||||
'("P" . meow-yank-pop)
|
||||
'("q" . meow-quit)
|
||||
'("Q" . meow-goto-line)
|
||||
'("r" . meow-replace)
|
||||
'("R" . meow-swap-grab)
|
||||
'("s" . meow-kill)
|
||||
'("t" . meow-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)
|
||||
'("/" . consult-line)
|
||||
'("'" . repeat)
|
||||
'("<escape>" . ignore)))
|
||||
#+end_src
|
||||
|
||||
There's also no dependencies that rely on meow so adding this is pretty straight
|
||||
forward.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package meow
|
||||
:ensure t
|
||||
:config
|
||||
(meow-setup)
|
||||
(meow-global-mode 1))
|
||||
#+end_src
|
||||
|
||||
|
||||
Reference in New Issue
Block a user