feat: Add god-mode modal editing with custom keybindings

This commit is contained in:
2026-05-12 09:12:22 +08:00
parent 61edd16f0c
commit b0a340f8b5
4 changed files with 40 additions and 5 deletions

View File

@@ -41,10 +41,11 @@
;; delight
(use-package delight
:init
(delight '((eldoc-mode nil eldoc)
(delight `((eldoc-mode nil eldoc)
(org-indent-mode nil org-indent)
(desktop-environment-mode nil desktop-environment)
(hs-minor-mode nil hideshow))))
(hs-minor-mode nil hideshow)
(god-local-mode ,(propertize " THANK-GOD-MODE" 'face '(:foreground "#CE2825" :weight bold)) god-mode))))
;; 安装gcmh用于管理内存回收
(use-package gcmh

View File

@@ -9,6 +9,14 @@
(setq mac-command-modifier 'meta)
(setq mac-option-modifier 'none))
;; god-mode
(general-def god-local-mode-map
"i" 'god-mode-all
"<escape>" 'god-mode-all
"[" 'backward-paragraph
"]" 'forward-paragraph
"." 'repeat)
;; g for gptel
(general-def
:prefix "C-c g"
@@ -165,7 +173,8 @@
"M-{" 'org-previous-visible-heading
"M-}" 'org-next-visible-heading
"C-," 'duplicate-and-move-to-next-line
"C-c o l" 'denote-link)
"C-c o l" 'denote-link
"C-a" 'org-beginning-of-line)
;; hs-hide-mode
(general-def hs-minor-mode-map
@@ -220,6 +229,10 @@
;; global map
(general-def
;; god-mode
"<escape>" 'god-mode-all
"M-i" 'god-mode-all
;; buffer, file, and window
"<f2>" 'open-init-file
"<mouse-4>" 'previous-buffer
@@ -229,6 +242,10 @@
"C-x C-b" 'ibuffer-other-window
"C-x K" 'crux-kill-other-buffers
"C-x b" 'consult-buffer
"C-x C-1" 'delete-other-windows
"C-x C-2" 'split-window-below
"C-x C-3" 'split-window-right
"C-x C-0" 'delete-window
;; edit
"M-c" 'capitalize-dwim

View File

@@ -73,6 +73,8 @@
;; denote
(use-package denote
:init
(denote-rename-buffer-mode)
:config
(setq denote-directory "~/org/my-org-note/")
(setq denote-prompts '(title signature keywords))

View File

@@ -158,6 +158,7 @@ targets."
search-ring
regexp-search-ring
extended-command-history)
savehist-ignored-variables '(consult-notes-history)
savehist-autosave-interval 300)
(savehist-mode))
@@ -194,7 +195,7 @@ targets."
("C-x p b" . consult-project-buffer))
:config
(setq projectile-enable-caching t))
;; ibuffer
(use-package ibuffer
:config
@@ -224,7 +225,7 @@ targets."
(name . "^\\*Help\\*$")
(name . "^\\*Custom.*")
(name . "^\\*Org Agenda\\*$")
(name . "^\\*info\\*$")
(name . "^\\*info\\*$")
(name . "^\\*Backtrace\\*$")
(name . "^\\*Messages\\*$")
(name . "*Chinese-word-segmentation*")
@@ -326,6 +327,20 @@ targets."
(?t "Types" font-lock-type-face)
(?v "Variables" font-lock-variable-name-face)))))))
;; god-mode模态编辑
(use-package god-mode
:config
(setq god-mode-enable-function-key-translation nil)
(defun god-mode-enable-relative-line-numbers ()
(if god-local-mode
(setq display-line-numbers 'relative)
(setq display-line-numbers t)))
(add-hook 'god-local-mode-hook #'god-mode-enable-relative-line-numbers)
(setq god-exempt-major-modes
(delete-dups (append '(diff-mode exwm-mode) god-exempt-major-modes))))
;; perspective工作区管理
(use-package perspective
:bind