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
@ -200,7 +197,7 @@
(interactive) (interactive)
(cond (cond
((eq system-type 'windows-nt) ((eq system-type 'windows-nt)
(call-process-shell-command (concat "wt -d " default-directory) nil 0)) (call-process-shell-command (concat "wt -d " default-directory) nil 0))
((eq system-type 'darwin) ((eq system-type 'darwin)
(shell-command (concat "open -a iTerm " (shell-quote-argument (expand-file-name default-directory))))) (shell-command (concat "open -a iTerm " (shell-quote-argument (expand-file-name default-directory)))))
((eq system-type 'gnu/linux) ((eq system-type 'gnu/linux)
@ -211,11 +208,11 @@
(interactive) (interactive)
(cond (cond
((eq system-type 'windows-nt) ((eq system-type 'windows-nt)
(shell-command (concat "start " (expand-file-name default-directory)))) (shell-command (concat "start " (expand-file-name default-directory))))
((eq system-type 'darwin) ((eq system-type 'darwin)
(shell-command (concat "open " (expand-file-name default-directory)))) (shell-command (concat "open " (expand-file-name default-directory))))
((eq system-type 'gnu/linux) ((eq system-type 'gnu/linux)
(shell-command (concat "xdg-open " (expand-file-name default-directory)))))) (shell-command (concat "xdg-open " (expand-file-name default-directory))))))
;; TODO: Look at using the EAT package for terminal things ;; TODO: Look at using the EAT package for terminal things
;; https://codeberg.org/akib/emacs-eat ;; https://codeberg.org/akib/emacs-eat
@ -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
(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 C-+") 'evil-numbers/inc-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 :config
(require 'evil-org-agenda) (evil-define-key '(normal visual) 'global (kbd "C-a +") 'evil-numbers/inc-at-pt)
(evil-org-agenda-set-keys)) (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/dec-at-pt-incremental))
;; 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 Keybinds
":" 'eval-expression
"p" 'execute-extended-command
"e" 'eval-last-sexp
"E" 'eval-print-last-sexp
"b" 'eval-buffer
"." 'repeat-complex-command
"q" 'evil-quit-all
;; Buffer Management
"w" 'save-buffer
"l" 'ibuffer
"d" 'evil-delete-buffer
;; Search and replace (interactive)
"r" 'replace-regexp
"y" 'yank-from-kill-ring
;; Running external stuff
"c" 'compile
"!" 'shell-command
"&" 'async-shell-command
"g" 'magit-status
;; Jumping places
"f" 'ffap
"-" 'dired-jump
"B" 'bookmark-jump
;; External Apps
"O" 'ext-file-browser-in-workdir
"T" 'ext-terminal-in-workdir
;; Extra packages
"s" 'yas-insert-snippet
"F" 'format-all-region-or-buffer)
;; Eval ;; Global Toggle Keymaps
(evil-define-key 'normal 'global (kbd "<leader> :") 'eval-expression) (general-nmap
(evil-define-key 'normal 'global (kbd "<leader> p") 'execute-extended-command) :prefix "SPC t"
(evil-define-key 'normal 'global (kbd "<leader> e") 'eval-last-sexp) ;; Toggle Modes
(evil-define-key 'visual 'global (kbd "<leader> e") 'eval-region) "A" 'abbrev-mode
(evil-define-key 'normal 'global (kbd "<leader> E") 'eval-print-last-sexp) "W" 'whitespace-mode
"P" 'smartparens-mode)
;; Buffer Management ;; Global Visual Mode Keymaps
(evil-define-key 'normal 'global (kbd "<leader> w") 'save-buffer) (general-vmap
(evil-define-key 'normal 'global (kbd "<leader> b") 'eval-buffer) :prefix "SPC"
(evil-define-key 'normal 'global (kbd "<leader> l") 'ibuffer) "e" 'eval-region)
(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)
(evil-define-key 'normal 'global (kbd "<leader> o") 'occur)
(evil-define-key 'normal 'global (kbd "<leader> r") 'replace-regexp)
(evil-define-key 'normal 'global (kbd "<leader> y") 'yank-from-kill-ring)
;; Running external stuff
(evil-define-key 'normal 'global (kbd "<leader> c") 'compile)
(evil-define-key 'normal 'global (kbd "<leader> r") 'recompile)
(evil-define-key 'normal 'global (kbd "<leader> !") 'shell-command)
(evil-define-key 'normal 'global (kbd "<leader> &") 'async-shell-command)
(evil-define-key 'normal 'global (kbd "<leader> g") 'magit-status)
;; Jumping places
(evil-define-key 'normal 'global (kbd "<leader> f") 'ffap)
(evil-define-key 'normal 'global (kbd "<leader> -") 'dired-jump)
(evil-define-key 'normal 'global (kbd "<leader> B") 'bookmark-jump)
(evil-define-key 'normal 'global (kbd "<leader> R") 'recentf)
(evil-define-key 'normal 'global (kbd "C-c i") (lambda () (interactive) (find-file user-init-file)))
(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
(evil-define-key 'normal 'global (kbd "<leader> s") 'yas-insert-snippet)
(evil-define-key 'normal 'global (kbd "<leader> F") 'format-all-region-or-buffer)
;; 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
'(org-export-backends '(ascii html icalendar latex man md odt org)) :config
(global-set-key (kbd "C-c a") #'org-agenda) '(org-export-backends '(ascii html icalendar latex man md odt org))
(global-set-key (kbd "C-c c") #'org-capture) (global-set-key (kbd "C-c a") #'org-agenda)
(evil-define-key 'normal org-mode-map (global-set-key (kbd "C-c c") #'org-capture)
(kbd "SPC TAB") 'org-todo (global-set-key (kbd "C-c l") #'org-store-link)
">" 'org-shiftmetaright (evil-define-key 'normal org-mode-map
"<" 'org-shiftmetaleft) (kbd "SPC TAB") 'org-todo
(kbd "SPC t") 'org-todo
">" 'org-shiftmetaright
"<" 'org-shiftmetaleft))
;;; Markdown support for emacs ;;; Markdown support for emacs
;; https://github.com/jrblevin/markdown-mode ;; https://github.com/jrblevin/markdown-mode
@ -447,9 +442,9 @@
;; https://github.com/doomemacs/themes ;; https://github.com/doomemacs/themes
(use-package doom-themes (use-package doom-themes
:straight t) :straight t)
;; :config ;; :config
;; (load-theme 'doom-badger t)) ;; (load-theme 'doom-badger t))
;; (load-theme 'doom-ir-black t)) ;; (load-theme 'doom-ir-black t))
;; Doom Modeline - much easier on the eyes ;; Doom Modeline - much easier on the eyes
;; https://github.com/seagle0128/doom-modeline ;; https://github.com/seagle0128/doom-modeline
@ -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)