feat: Add god-mode modal editing with custom keybindings
This commit is contained in:
@@ -41,10 +41,11 @@
|
|||||||
;; delight
|
;; delight
|
||||||
(use-package delight
|
(use-package delight
|
||||||
:init
|
:init
|
||||||
(delight '((eldoc-mode nil eldoc)
|
(delight `((eldoc-mode nil eldoc)
|
||||||
(org-indent-mode nil org-indent)
|
(org-indent-mode nil org-indent)
|
||||||
(desktop-environment-mode nil desktop-environment)
|
(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用于管理内存回收
|
;; 安装gcmh用于管理内存回收
|
||||||
(use-package gcmh
|
(use-package gcmh
|
||||||
|
|||||||
@@ -9,6 +9,14 @@
|
|||||||
(setq mac-command-modifier 'meta)
|
(setq mac-command-modifier 'meta)
|
||||||
(setq mac-option-modifier 'none))
|
(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
|
;; g for gptel
|
||||||
(general-def
|
(general-def
|
||||||
:prefix "C-c g"
|
:prefix "C-c g"
|
||||||
@@ -165,7 +173,8 @@
|
|||||||
"M-{" 'org-previous-visible-heading
|
"M-{" 'org-previous-visible-heading
|
||||||
"M-}" 'org-next-visible-heading
|
"M-}" 'org-next-visible-heading
|
||||||
"C-," 'duplicate-and-move-to-next-line
|
"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
|
;; hs-hide-mode
|
||||||
(general-def hs-minor-mode-map
|
(general-def hs-minor-mode-map
|
||||||
@@ -220,6 +229,10 @@
|
|||||||
;; global map
|
;; global map
|
||||||
(general-def
|
(general-def
|
||||||
|
|
||||||
|
;; god-mode
|
||||||
|
"<escape>" 'god-mode-all
|
||||||
|
"M-i" 'god-mode-all
|
||||||
|
|
||||||
;; buffer, file, and window
|
;; buffer, file, and window
|
||||||
"<f2>" 'open-init-file
|
"<f2>" 'open-init-file
|
||||||
"<mouse-4>" 'previous-buffer
|
"<mouse-4>" 'previous-buffer
|
||||||
@@ -229,6 +242,10 @@
|
|||||||
"C-x C-b" 'ibuffer-other-window
|
"C-x C-b" 'ibuffer-other-window
|
||||||
"C-x K" 'crux-kill-other-buffers
|
"C-x K" 'crux-kill-other-buffers
|
||||||
"C-x b" 'consult-buffer
|
"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
|
;; edit
|
||||||
"M-c" 'capitalize-dwim
|
"M-c" 'capitalize-dwim
|
||||||
|
|||||||
@@ -73,6 +73,8 @@
|
|||||||
|
|
||||||
;; denote
|
;; denote
|
||||||
(use-package denote
|
(use-package denote
|
||||||
|
:init
|
||||||
|
(denote-rename-buffer-mode)
|
||||||
:config
|
:config
|
||||||
(setq denote-directory "~/org/my-org-note/")
|
(setq denote-directory "~/org/my-org-note/")
|
||||||
(setq denote-prompts '(title signature keywords))
|
(setq denote-prompts '(title signature keywords))
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ targets."
|
|||||||
search-ring
|
search-ring
|
||||||
regexp-search-ring
|
regexp-search-ring
|
||||||
extended-command-history)
|
extended-command-history)
|
||||||
|
savehist-ignored-variables '(consult-notes-history)
|
||||||
savehist-autosave-interval 300)
|
savehist-autosave-interval 300)
|
||||||
(savehist-mode))
|
(savehist-mode))
|
||||||
|
|
||||||
@@ -194,7 +195,7 @@ targets."
|
|||||||
("C-x p b" . consult-project-buffer))
|
("C-x p b" . consult-project-buffer))
|
||||||
:config
|
:config
|
||||||
(setq projectile-enable-caching t))
|
(setq projectile-enable-caching t))
|
||||||
|
|
||||||
;; ibuffer
|
;; ibuffer
|
||||||
(use-package ibuffer
|
(use-package ibuffer
|
||||||
:config
|
:config
|
||||||
@@ -224,7 +225,7 @@ targets."
|
|||||||
(name . "^\\*Help\\*$")
|
(name . "^\\*Help\\*$")
|
||||||
(name . "^\\*Custom.*")
|
(name . "^\\*Custom.*")
|
||||||
(name . "^\\*Org Agenda\\*$")
|
(name . "^\\*Org Agenda\\*$")
|
||||||
(name . "^\\*info\\*$")
|
(name . "^\\*info\\*$")
|
||||||
(name . "^\\*Backtrace\\*$")
|
(name . "^\\*Backtrace\\*$")
|
||||||
(name . "^\\*Messages\\*$")
|
(name . "^\\*Messages\\*$")
|
||||||
(name . "*Chinese-word-segmentation*")
|
(name . "*Chinese-word-segmentation*")
|
||||||
@@ -326,6 +327,20 @@ targets."
|
|||||||
(?t "Types" font-lock-type-face)
|
(?t "Types" font-lock-type-face)
|
||||||
(?v "Variables" font-lock-variable-name-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,工作区管理
|
;; perspective,工作区管理
|
||||||
(use-package perspective
|
(use-package perspective
|
||||||
:bind
|
:bind
|
||||||
|
|||||||
Reference in New Issue
Block a user