(Emacs)~refactor general-def system
Firstly use ~(general-evil-setup t)~ to create aliases for general-def that are similar to evil (nmap, vmap, etc). Define my own nmmap which combines normal and motion states. Refactor all uses into the general-evil aliases.
This commit is contained in:
@@ -223,7 +223,14 @@ instead just picking stuff I think is useful.
|
|||||||
|
|
||||||
(general-create-definer local-leader
|
(general-create-definer local-leader
|
||||||
:states '(normal motion)
|
:states '(normal motion)
|
||||||
:prefix "SPC ,"))
|
:prefix "SPC ,")
|
||||||
|
|
||||||
|
(general-create-definer general-nmmap
|
||||||
|
:states '(normal motion))
|
||||||
|
|
||||||
|
(defalias 'nmmap #'general-nmmap)
|
||||||
|
|
||||||
|
(general-evil-setup t))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Add bindings for ~+literate/~ namespace, allows for quick reloads.
|
Add bindings for ~+literate/~ namespace, allows for quick reloads.
|
||||||
@@ -246,8 +253,7 @@ moment), bind to general some basic binds.
|
|||||||
(general-def
|
(general-def
|
||||||
"C-x d" #'delete-frame)
|
"C-x d" #'delete-frame)
|
||||||
|
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
"C--" #'text-scale-decrease
|
"C--" #'text-scale-decrease
|
||||||
"C-=" #'text-scale-increase)
|
"C-=" #'text-scale-increase)
|
||||||
|
|
||||||
@@ -304,8 +310,7 @@ Setup the evil package, with some opinionated keybindings:
|
|||||||
:demand t
|
:demand t
|
||||||
:hook (after-init-hook . evil-mode)
|
:hook (after-init-hook . evil-mode)
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
"TAB" #'evil-jump-item
|
"TAB" #'evil-jump-item
|
||||||
"r" #'evil-replace-state
|
"r" #'evil-replace-state
|
||||||
"zC" #'hs-hide-level
|
"zC" #'hs-hide-level
|
||||||
@@ -321,12 +326,15 @@ Setup the evil package, with some opinionated keybindings:
|
|||||||
(leader
|
(leader
|
||||||
"w" #'evil-window-map
|
"w" #'evil-window-map
|
||||||
"wd" #'delete-frame)
|
"wd" #'delete-frame)
|
||||||
|
(vmap
|
||||||
|
:keymaps '(emacs-lisp-mode-map lisp-interaction-mode-map)
|
||||||
|
"gr" #'eval-region)
|
||||||
:init
|
:init
|
||||||
(setq evil-want-keybinding nil
|
(setq evil-want-keybinding nil
|
||||||
evil-split-window-below t
|
evil-split-window-below t
|
||||||
evil-vsplit-window-right t
|
evil-vsplit-window-right t
|
||||||
evil-want-abbrev-expand-on-insert-exit t
|
evil-want-abbrev-expand-on-insert-exit t
|
||||||
evil-undo-system 'undo-tree)
|
evil-undo-system #'undo-tree)
|
||||||
:config
|
:config
|
||||||
(fset #'evil-window-vsplit #'make-frame))
|
(fset #'evil-window-vsplit #'make-frame))
|
||||||
#+end_src
|
#+end_src
|
||||||
@@ -347,18 +355,13 @@ Setup the evil package, with some opinionated keybindings:
|
|||||||
*** Evil multi cursor
|
*** Evil multi cursor
|
||||||
Setup for multi cursors in Evil mode. Don't let evil-mc setup it's own
|
Setup for multi cursors in Evil mode. Don't let evil-mc setup it's own
|
||||||
keymap because it uses 'gr' as its prefix, which I don't like.
|
keymap because it uses 'gr' as its prefix, which I don't like.
|
||||||
|
|
||||||
Instead, bind some useful functions to my personal =+dx:evil-mc-map=
|
|
||||||
which is bound to 'gz'. Define a function =dx:evil-mc-cursor-here=
|
|
||||||
which pauses cursors upon placing a cursor at the current position.
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package evil-mc
|
(use-package evil-mc
|
||||||
:after evil
|
:after evil
|
||||||
:init
|
:init
|
||||||
(defvar evil-mc-key-map (make-sparse-keymap))
|
(defvar evil-mc-key-map (make-sparse-keymap))
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmap
|
||||||
:states 'normal
|
|
||||||
:infix "gz"
|
:infix "gz"
|
||||||
"q" #'evil-mc-undo-all-cursors
|
"q" #'evil-mc-undo-all-cursors
|
||||||
"d" #'evil-mc-make-and-goto-next-match
|
"d" #'evil-mc-make-and-goto-next-match
|
||||||
@@ -497,9 +500,8 @@ with more text based functions.
|
|||||||
(use-package simple
|
(use-package simple
|
||||||
:straight nil
|
:straight nil
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmmap
|
||||||
:keymaps 'completion-list-mode-map
|
:keymaps 'completion-list-mode-map
|
||||||
:states '(normal motion)
|
|
||||||
"l" #'next-completion
|
"l" #'next-completion
|
||||||
"h" #'previous-completion
|
"h" #'previous-completion
|
||||||
"ESC" #'delete-completion-window
|
"ESC" #'delete-completion-window
|
||||||
@@ -602,13 +604,10 @@ just setup some evil binds for company.
|
|||||||
(prog-mode-hook . company-mode)
|
(prog-mode-hook . company-mode)
|
||||||
(eshell-mode-hook . company-mode)
|
(eshell-mode-hook . company-mode)
|
||||||
:general
|
:general
|
||||||
(general-def
|
(imap (kbd "C-SPC") #'company-complete)
|
||||||
:states 'insert
|
(:states '(normal insert)
|
||||||
(kbd "C-SPC") #'company-complete)
|
"M-j" #'company-select-next
|
||||||
(general-def
|
"M-k" #'company-select-previous))
|
||||||
:states '(normal insert)
|
|
||||||
"M-j" #'company-select-next
|
|
||||||
"M-k" #'company-select-previous))
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** Pretty symbols
|
** Pretty symbols
|
||||||
Prettify symbols mode allows for users to declare 'symbols' that
|
Prettify symbols mode allows for users to declare 'symbols' that
|
||||||
@@ -1075,8 +1074,7 @@ focus on a buffer.
|
|||||||
(use-package info
|
(use-package info
|
||||||
:straight nil
|
:straight nil
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
:keymaps 'Info-mode-map
|
:keymaps 'Info-mode-map
|
||||||
"h" #'evil-backward-char
|
"h" #'evil-backward-char
|
||||||
"k" #'evil-previous-line
|
"k" #'evil-previous-line
|
||||||
@@ -1144,8 +1142,7 @@ need to use it.
|
|||||||
(leader
|
(leader
|
||||||
:infix "s"
|
:infix "s"
|
||||||
"l" #'avy-goto-line)
|
"l" #'avy-goto-line)
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
(kbd "C-s") #'avy-goto-char-timer
|
(kbd "C-s") #'avy-goto-char-timer
|
||||||
(kbd "M-s") #'isearch-forward))
|
(kbd "M-s") #'isearch-forward))
|
||||||
#+end_src
|
#+end_src
|
||||||
@@ -1161,8 +1158,7 @@ window can provide some nicer chords for higher management of windows
|
|||||||
:custom
|
:custom
|
||||||
(aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))
|
(aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
[remap evil-window-next] #'ace-window))
|
[remap evil-window-next] #'ace-window))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Helpful
|
** Helpful
|
||||||
@@ -1281,12 +1277,10 @@ initial startup screen in default Emacs.
|
|||||||
:general
|
:general
|
||||||
(leader
|
(leader
|
||||||
"ab" #'dashboard-refresh-buffer)
|
"ab" #'dashboard-refresh-buffer)
|
||||||
(general-def
|
(:states '(normal motion emacs)
|
||||||
:states '(normal motion emacs)
|
:keymaps 'dashboard-mode-map
|
||||||
:keymaps 'dashboard-mode-map
|
"q" (proc (interactive) (kill-this-buffer)))
|
||||||
"q" (proc (interactive) (kill-this-buffer)))
|
(nmmap
|
||||||
(general-def
|
|
||||||
:states '(normal motion)
|
|
||||||
:keymaps 'dashboard-mode-map
|
:keymaps 'dashboard-mode-map
|
||||||
"r" #'dashboard-jump-to-recent-files
|
"r" #'dashboard-jump-to-recent-files
|
||||||
"p" #'dashboard-jump-to-projects
|
"p" #'dashboard-jump-to-projects
|
||||||
@@ -1328,8 +1322,8 @@ calendar to the kill ring and bind it to "Y".
|
|||||||
(inhibit-duplicate-buffer . t)
|
(inhibit-duplicate-buffer . t)
|
||||||
(window-height . 0.17))
|
(window-height . 0.17))
|
||||||
:general
|
:general
|
||||||
(:keymaps 'calendar-mode-map
|
(nmmap
|
||||||
:states '(normal motion)
|
:keymaps 'calendar-mode-map
|
||||||
"Y" #'+calendar/copy-date)
|
"Y" #'+calendar/copy-date)
|
||||||
(leader
|
(leader
|
||||||
"ad" #'+calendar/toggle-calendar)
|
"ad" #'+calendar/toggle-calendar)
|
||||||
@@ -1360,8 +1354,7 @@ integrate it into my workflow just a bit better.
|
|||||||
:commands (notmuch +mail/flag-thread)
|
:commands (notmuch +mail/flag-thread)
|
||||||
:general
|
:general
|
||||||
(leader "am" #'notmuch)
|
(leader "am" #'notmuch)
|
||||||
(general-def
|
(nmap
|
||||||
:states 'normal
|
|
||||||
:keymaps 'notmuch-search-mode-map
|
:keymaps 'notmuch-search-mode-map
|
||||||
"f" #'+mail/flag-thread)
|
"f" #'+mail/flag-thread)
|
||||||
:init
|
:init
|
||||||
@@ -1459,8 +1452,7 @@ thumb, otherwise open the file."
|
|||||||
(call-interactively #'dired-other-frame)
|
(call-interactively #'dired-other-frame)
|
||||||
(call-interactively #'dired)))
|
(call-interactively #'dired)))
|
||||||
|
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
:keymaps 'dired-mode-map
|
:keymaps 'dired-mode-map
|
||||||
"SPC" nil
|
"SPC" nil
|
||||||
"SPC ," nil)
|
"SPC ," nil)
|
||||||
@@ -1505,8 +1497,7 @@ results of work very quickly without switching windows or workspaces.
|
|||||||
(display-buffer-pop-up-frame))
|
(display-buffer-pop-up-frame))
|
||||||
:general
|
:general
|
||||||
(leader "au" #'xwidget-webkit-browse-url)
|
(leader "au" #'xwidget-webkit-browse-url)
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
:keymaps 'xwidget-webkit-mode-map
|
:keymaps 'xwidget-webkit-mode-map
|
||||||
"q" #'quit-window
|
"q" #'quit-window
|
||||||
"h" #'xwidget-webkit-scroll-backward
|
"h" #'xwidget-webkit-scroll-backward
|
||||||
@@ -1612,7 +1603,7 @@ pretty symbols to eshell.
|
|||||||
(proc
|
(proc
|
||||||
(interactive)
|
(interactive)
|
||||||
(general-def
|
(general-def
|
||||||
:states '(insert normal)
|
:states '(normal insert)
|
||||||
:keymaps 'eshell-mode-map
|
:keymaps 'eshell-mode-map
|
||||||
"M-l" (proc (interactive) (eshell/clear)
|
"M-l" (proc (interactive) (eshell/clear)
|
||||||
"M-j" #'eshell-next-matching-input-from-input
|
"M-j" #'eshell-next-matching-input-from-input
|
||||||
@@ -1646,8 +1637,7 @@ to elfeed for loading the system.
|
|||||||
(use-package elfeed
|
(use-package elfeed
|
||||||
:general
|
:general
|
||||||
(leader "ar" #'elfeed)
|
(leader "ar" #'elfeed)
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
:keymaps 'elfeed-search-mode-map
|
:keymaps 'elfeed-search-mode-map
|
||||||
"gr" #'elfeed-update
|
"gr" #'elfeed-update
|
||||||
"s" #'elfeed-search-live-filter
|
"s" #'elfeed-search-live-filter
|
||||||
@@ -1767,8 +1757,7 @@ Core proced config, just a few bindings and evil collection setup.
|
|||||||
:general
|
:general
|
||||||
(leader
|
(leader
|
||||||
"ap" #'proced)
|
"ap" #'proced)
|
||||||
(general-def
|
(nmap
|
||||||
:states 'normal
|
|
||||||
:keymaps 'proced-mode-map
|
:keymaps 'proced-mode-map
|
||||||
"za" #'proced-toggle-auto-update)
|
"za" #'proced-toggle-auto-update)
|
||||||
:display
|
:display
|
||||||
@@ -1789,8 +1778,7 @@ further filtering of the process list.
|
|||||||
:straight t
|
:straight t
|
||||||
:after proced
|
:after proced
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmap
|
||||||
:states 'normal
|
|
||||||
:keymaps 'proced-mode-map
|
:keymaps 'proced-mode-map
|
||||||
"%" #'proced-narrow))
|
"%" #'proced-narrow))
|
||||||
#+end_src
|
#+end_src
|
||||||
@@ -1878,8 +1866,7 @@ flyspell-mode should be hooked to text-mode.
|
|||||||
(use-package flyspell
|
(use-package flyspell
|
||||||
:hook (text-mode-hook . flyspell-mode)
|
:hook (text-mode-hook . flyspell-mode)
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
:keymaps 'text-mode-map
|
:keymaps 'text-mode-map
|
||||||
(kbd "M-C") #'flyspell-correct-word-before-point
|
(kbd "M-C") #'flyspell-correct-word-before-point
|
||||||
(kbd "M-c") #'flyspell-auto-correct-word))
|
(kbd "M-c") #'flyspell-auto-correct-word))
|
||||||
@@ -1903,8 +1890,7 @@ limit), so set it for specific modes need the help.
|
|||||||
(use-package whitespace
|
(use-package whitespace
|
||||||
:straight nil
|
:straight nil
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
"M--" #'whitespace-cleanup)
|
"M--" #'whitespace-cleanup)
|
||||||
:hook
|
:hook
|
||||||
(before-save-hook . whitespace-cleanup)
|
(before-save-hook . whitespace-cleanup)
|
||||||
@@ -2095,8 +2081,7 @@ to standard grep (but for PDFs!).
|
|||||||
:after pdf-tools
|
:after pdf-tools
|
||||||
:hook (pdf-view-mode-hook . pdfgrep-mode)
|
:hook (pdf-view-mode-hook . pdfgrep-mode)
|
||||||
:general
|
:general
|
||||||
(general-def
|
(nmap
|
||||||
:states 'normal
|
|
||||||
:keymaps 'pdf-view-mode-map
|
:keymaps 'pdf-view-mode-map
|
||||||
"M-g" #'pdfgrep))
|
"M-g" #'pdfgrep))
|
||||||
#+end_src
|
#+end_src
|
||||||
@@ -2332,8 +2317,7 @@ a very tidy way to manage your time.
|
|||||||
(leader
|
(leader
|
||||||
"fa" (proc (interactive) (find-file (car org-agenda-files)))
|
"fa" (proc (interactive) (find-file (car org-agenda-files)))
|
||||||
"aa" #'org-agenda)
|
"aa" #'org-agenda)
|
||||||
(general-def
|
(nmmap
|
||||||
:states '(normal motion)
|
|
||||||
:keymaps 'org-agenda-mode-map
|
:keymaps 'org-agenda-mode-map
|
||||||
"J" #'org-agenda-later
|
"J" #'org-agenda-later
|
||||||
"K" #'org-agenda-earlier
|
"K" #'org-agenda-earlier
|
||||||
@@ -2683,8 +2667,7 @@ Then emmet for super speed
|
|||||||
(use-package emmet-mode
|
(use-package emmet-mode
|
||||||
:hook (web-mode-hook . emmet-mode)
|
:hook (web-mode-hook . emmet-mode)
|
||||||
:general
|
:general
|
||||||
(general-def
|
(imap
|
||||||
:states 'insert
|
|
||||||
:keymaps 'emmet-mode-keymap
|
:keymaps 'emmet-mode-keymap
|
||||||
"TAB" #'emmet-expand-line
|
"TAB" #'emmet-expand-line
|
||||||
"M-j" #'emmet-next-edit-point
|
"M-j" #'emmet-next-edit-point
|
||||||
|
|||||||
Reference in New Issue
Block a user