Keymap changes with general.el

This commit is contained in:
James Dixon 2025-05-19 20:06:37 -04:00
parent ee1098a843
commit 1401f0b8f8

View File

@ -45,10 +45,7 @@
(fset 'yes-or-no-p 'y-or-n-p) (fset 'yes-or-no-p 'y-or-n-p)
;; Show paren differently ;; Show paren differently
(setq show-paren-delay 0.1 (setq show-paren-delay 0.1 show-paren-highlight-openparen t show-paren-when-point-inside-paren t show-paren-when-point-in-periphery t)
show-paren-highlight-openparen t
show-paren-when-point-inside-paren t
show-paren-when-point-in-periphery t)
;;; Memory Limits and Performance ;;; Memory Limits and Performance
;; Undo/Redo ;; Undo/Redo
@ -331,81 +328,76 @@
;; https://github.com/cofi/evil-numbers ;; https://github.com/cofi/evil-numbers
(use-package evil-numbers (use-package evil-numbers
:straight t :straight t
:after evil) :after evil
:config
(evil-define-key '(normal visual) 'global (kbd "C-a +") 'evil-numbers/inc-at-pt) (evil-define-key '(normal visual) 'global (kbd "C-a +") 'evil-numbers/inc-at-pt)
(evil-define-key '(normal visual) 'global (kbd "C-a -") 'evil-numbers/dec-at-pt) (evil-define-key '(normal visual) 'global (kbd "C-a -") 'evil-numbers/dec-at-pt)
(evil-define-key '(normal visual) 'global (kbd "C-a C-+") 'evil-numbers/inc-at-pt-incremental) (evil-define-key '(normal visual) 'global (kbd "C-a C-+") 'evil-numbers/inc-at-pt-incremental)
(evil-define-key '(normal visual) 'global (kbd "C-a C--") 'evil-numbers/dec-at-pt-incremental) (evil-define-key '(normal visual) 'global (kbd "C-a C--") 'evil-numbers/dec-at-pt-incremental))
;;; Org mode Evil bindings
;; https://github.com/Somelauw/evil-org-mode
(use-package evil-org
:straight t
:hook (org-mode . evil-org-mode)
:after org
:config
(require 'evil-org-agenda)
(evil-org-agenda-set-keys))
;; Custom Evil Keybinds ;; Custom Evil Keybinds
;; Evil Guide: https://github.com/noctuid/evil-guide?tab=readme-ov-file#keybindings-and-states ;; Evil Guide: https://github.com/noctuid/evil-guide?tab=readme-ov-file#keybindings-and-states
;; General keybind definition helper
;; https://github.com/noctuid/general.el
(use-package general
:straight t
:config (general-evil-setup))
;; Leader (prefix key) ;; Global Normal Mode Keymaps
(evil-set-leader nil (kbd "SPC")) (general-nmap
:prefix "SPC"
;; Eval ;; Eval Keybinds
(evil-define-key 'normal 'global (kbd "<leader> :") 'eval-expression) ":" 'eval-expression
(evil-define-key 'normal 'global (kbd "<leader> p") 'execute-extended-command) "p" 'execute-extended-command
(evil-define-key 'normal 'global (kbd "<leader> e") 'eval-last-sexp) "e" 'eval-last-sexp
(evil-define-key 'visual 'global (kbd "<leader> e") 'eval-region) "E" 'eval-print-last-sexp
(evil-define-key 'normal 'global (kbd "<leader> E") 'eval-print-last-sexp) "b" 'eval-buffer
"." 'repeat-complex-command
"q" 'evil-quit-all
;; Buffer Management ;; Buffer Management
(evil-define-key 'normal 'global (kbd "<leader> w") 'save-buffer) "w" 'save-buffer
(evil-define-key 'normal 'global (kbd "<leader> b") 'eval-buffer) "l" 'ibuffer
(evil-define-key 'normal 'global (kbd "<leader> l") 'ibuffer) "d" 'evil-delete-buffer
(evil-define-key 'normal 'global (kbd "<leader> d") 'evil-delete-buffer)
;; Toggles
(evil-define-key 'normal 'global (kbd "<leader> A") 'abbrev-mode)
(evil-define-key 'normal 'global (kbd "<leader> W") 'whitespace-mode)
;; Search and replace (interactive) ;; Search and replace (interactive)
(evil-define-key 'normal 'global (kbd "<leader> o") 'occur) "r" 'replace-regexp
(evil-define-key 'normal 'global (kbd "<leader> r") 'replace-regexp) "y" 'yank-from-kill-ring
(evil-define-key 'normal 'global (kbd "<leader> y") 'yank-from-kill-ring)
;; Running external stuff ;; Running external stuff
(evil-define-key 'normal 'global (kbd "<leader> c") 'compile) "c" 'compile
(evil-define-key 'normal 'global (kbd "<leader> r") 'recompile) "!" 'shell-command
(evil-define-key 'normal 'global (kbd "<leader> !") 'shell-command) "&" 'async-shell-command
(evil-define-key 'normal 'global (kbd "<leader> &") 'async-shell-command) "g" 'magit-status
(evil-define-key 'normal 'global (kbd "<leader> g") 'magit-status)
;; Jumping places ;; Jumping places
(evil-define-key 'normal 'global (kbd "<leader> f") 'ffap) "f" 'ffap
(evil-define-key 'normal 'global (kbd "<leader> -") 'dired-jump) "-" 'dired-jump
(evil-define-key 'normal 'global (kbd "<leader> B") 'bookmark-jump) "B" 'bookmark-jump
(evil-define-key 'normal 'global (kbd "<leader> R") 'recentf) ;; External Apps
(evil-define-key 'normal 'global (kbd "C-c i") (lambda () (interactive) (find-file user-init-file))) "O" 'ext-file-browser-in-workdir
"T" 'ext-terminal-in-workdir
(evil-define-key 'normal 'global (kbd "<leader> O") 'ext-file-browser-in-workdir)
(evil-define-key 'normal 'global (kbd "<leader> T") 'ext-terminal-in-workdir)
(evil-define-key 'normal 'global (kbd "<leader> x") ctl-x-map)
;; Extra packages ;; Extra packages
(evil-define-key 'normal 'global (kbd "<leader> s") 'yas-insert-snippet) "s" 'yas-insert-snippet
(evil-define-key 'normal 'global (kbd "<leader> F") 'format-all-region-or-buffer) "F" 'format-all-region-or-buffer)
;; Global Toggle Keymaps
(general-nmap
:prefix "SPC t"
;; Toggle Modes
"A" 'abbrev-mode
"W" 'whitespace-mode
"P" 'smartparens-mode)
;; Global Visual Mode Keymaps
(general-vmap
:prefix "SPC"
"e" 'eval-region)
;; Custom Ex commands ;; Custom Ex commands
(evil-ex-define-cmd "Format" 'format-all-region-or-buffer) (evil-ex-define-cmd "Format" 'format-all-region-or-buffer) ;; format-all-code
;; end evil ;; end evil
(global-set-key (kbd "C-c C-y") 'yank-from-kill-ring) ;;; Regular Keybinds
;; TODO: use general to setup more specific keybinds (global-set-key (kbd "C-c i") (lambda () (interactive) (find-file user-init-file)))
;; https://github.com/noctuid/general.el?tab=readme-ov-file (global-set-key (kbd "C-c d") (lambda () (interactive) (find-file (getenv "DOTFILES"))))
(global-set-key (kbd "C-c g") (lambda () (interactive) (find-file (concat (getenv "DOTFILES") "/config/emacs/.config/emacs/init.el"))))
;;; Easy find init file
(set-register ?i (cons 'file user-init-file))
;;; Vanilla+ Packages (dired, magit, org-mode) ;;; Vanilla+ Packages (dired, magit, org-mode)
;; Dired (directory editor) ;; Dired (directory editor)
@ -416,22 +408,25 @@
:config :config
(setq dired-dwim-target t)) (setq dired-dwim-target t))
;; Magit (git interface) ;; Magit (intuitive git interface)
;; https://magit.vc/ ;; https://magit.vc/
(use-package magit (use-package magit
:straight t) :straight t)
;; Org mode ;; Org mode (organization framework)
;; https://orgmode.org/ ;; https://orgmode.org/
(use-package org (use-package org
:straight nil) :straight nil
:config
'(org-export-backends '(ascii html icalendar latex man md odt org)) '(org-export-backends '(ascii html icalendar latex man md odt org))
(global-set-key (kbd "C-c a") #'org-agenda) (global-set-key (kbd "C-c a") #'org-agenda)
(global-set-key (kbd "C-c c") #'org-capture) (global-set-key (kbd "C-c c") #'org-capture)
(global-set-key (kbd "C-c l") #'org-store-link)
(evil-define-key 'normal org-mode-map (evil-define-key 'normal org-mode-map
(kbd "SPC TAB") 'org-todo (kbd "SPC TAB") 'org-todo
(kbd "SPC t") 'org-todo
">" 'org-shiftmetaright ">" 'org-shiftmetaright
"<" 'org-shiftmetaleft) "<" 'org-shiftmetaleft))
;;; Markdown support for emacs ;;; Markdown support for emacs
;; https://github.com/jrblevin/markdown-mode ;; https://github.com/jrblevin/markdown-mode
@ -508,13 +503,14 @@
(define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated)) (define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated))
(define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom)) (define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom))
;;; Mini-buffer improvements (vertico, orderless, marginalia) ;;; Mini-buffer improvements (fido, orderless, marginalia)
;; Vertical Completion UI ;; Vertical Completion UI
;; https://github.com/minad/vertico ;; https://github.com/minad/vertico
(use-package vertico ;; (use-package vertico
:straight t ;; :straight t
:init (vertico-mode)) ;; :init (vertico-mode))
(fido-vertical-mode)
;; Ordering regex for completion ;; Ordering regex for completion
;; https://github.com/oantolin/orderless ;; https://github.com/oantolin/orderless
@ -619,11 +615,6 @@
;; Abbrevs and Snippets ;; Abbrevs and Snippets
;;; General English Abbrevs
(define-abbrev global-abbrev-table "bg" "background")
(define-abbrev global-abbrev-table "ty" "thank you")
(define-abbrev global-abbrev-table "yw" "you are welcome")
(define-abbrev global-abbrev-table "u" "you")
;; URLs ;; URLs
(define-abbrev global-abbrev-table "mygh" "https://github.com/lemonase") (define-abbrev global-abbrev-table "mygh" "https://github.com/lemonase")
;; Timestamps ;; Timestamps
@ -720,11 +711,10 @@
(use-package format-all (use-package format-all
:straight t) :straight t)
;;; Lua ;;; Other misc modes (lua, docker, gptel, load-env-vars, csv-mode)
(use-package lua-mode (use-package lua-mode
:straight t) :straight t)
;;; Other misc modes (docker, gptel, load-env-vars, csv-mode)
(use-package docker (use-package docker
:straight t :straight t
:defer t) :defer t)