.emacs.d

the most bloated Emacs config on this planet
git clone https://git.trogloxene.org/.emacs.d.git
Log | Files | Refs

commit 0dcb43a186d6a3cd5fe11b829954be4bad2e587a
parent 31e77f0208afeabc37f037534655b037f85b6696
Author: andsy10 <andsy1016@gmail.com>
Date:   Fri, 28 Aug 2026 02:16:20 +0800

Update keybindings

Diffstat:
Mlisp/init-kbd-func.el | 14++++++++++++++
Mlisp/init-kbd.el | 30+++++++++++++++---------------
Mlisp/init-package.el | 18++++++++----------
Mlisp/init-terminal.el | 16+++++++++++++---
4 files changed, 50 insertions(+), 28 deletions(-)

diff --git a/lisp/init-kbd-func.el b/lisp/init-kbd-func.el @@ -9,6 +9,16 @@ (interactive) (find-file user-init-file)) +(defun my-scratch-buffer (&optional arg) + "Switch to the *scratch* buffer. +With a prefix ARG create a new *scratch* buffer." + (interactive "P") + (if arg + (let ((buf (generate-new-buffer "*scratch*"))) + (switch-to-buffer buf) + (funcall initial-major-mode)) + (scratch-buffer))) + (when *is-windows* (defun restart-emacs () "Restart emacs (for Windows)" @@ -20,6 +30,10 @@ (defun disable-truncate-lines () (toggle-truncate-lines 1)) +(defun other-window-backward () + (interactive) + (other-window -1)) + (defun query-replace-case-sensitive () "Case-sensitive `query-replace'." (interactive) diff --git a/lisp/init-kbd.el b/lisp/init-kbd.el @@ -11,7 +11,7 @@ "]" #'forward-paragraph "." #'repeat "y" #'yank - "C-c C-<f12>" #'scratch-buffer + "C-c C-<f12>" #'my-scratch-buffer "z" #'avy-goto-char "'" #'avy-goto-word-1 "<f2>" #'open-init-file) @@ -37,7 +37,6 @@ ;; elfeed (general-def elfeed-search-mode-map - "RET" #'my-elfeed-search-show-entry-other-window "v" #'my-elfeed-search-preview-other-window "TAB" #'my-elfeed-search-preview-other-window) @@ -60,7 +59,8 @@ :prefix "C-c w" "f" #'fixup-whitespace "r" #'whitespace-report - "o" #'global-whitespace-toggle-options) + "o" #'global-whitespace-toggle-options + "c" #'whitespace-cleanup) ;; f for find and consult command (general-def @@ -74,6 +74,7 @@ "h" #'consult-fd-home "m" #'consult-man "d" #'my-open-current-directory + "J" #'consult-register "j" #'consult-jinx "k" #'consult-kmacro "o" #'consult-outline @@ -169,13 +170,8 @@ "B" #'benchmark-init/show-durations-tabulated "s" #'syncthing "f" #'elfeed - "k" #'pass) - -;; C-d for document -(general-def (emacs-lisp-mode-map lisp-interaction-mode-map) - :prefix "C-c C-d" - "C-d" #'helpful-at-point - "C-a" #'apropos) + "k" #'pass + "g" #'gt-translate) ;; r for replacement (general-def @@ -189,17 +185,17 @@ ;; scratch buffer (if *is-mac* - (general-def "C-c <f12>" #'scratch-buffer) - (general-def "C-c <delete>" #'scratch-buffer)) + (general-def "C-c <f12>" #'my-scratch-buffer) + (general-def "C-c <delete>" #'my-scratch-buffer)) ;; dired (general-def (dired-mode-map dirvish-mode-map) "TAB" #'dirvish-subtree-toggle + "C-<tab>" #'dirvish-subtree-remove "s" #'dirvish-quicksort "h" #'dirvish-history-menu "M-," #'scroll-other-window-down "M-." #'scroll-other-window - "<mouse-2>" #'emms-play-dired "C-c m a" #'emms-add-dired "b" #'dired-up-directory "C-b" #'backward-char @@ -249,6 +245,10 @@ (general-def ghostel-char-mode-map "M-]" nil) +(general-def ghostel-semi-char-mode-map + "M-o" nil + "C-k" #'my-ghostel-send-C-k-and-kill) + ;; embark (general-def embark-file-map "d" #'consult-directory-externally @@ -412,12 +412,12 @@ "M-`" #'popper-toggle "C-M-=" #'popper-toggle-type-delete-other-window "M-o" #'other-window + "M-O" #'other-window-backward ;; other "C-x r b" #'consult-bookmark "C-;" #'embark-act - "M-s M-b" #'eww-list-bookmarks - "C-c x g" 'gt-translate) + "M-s M-b" #'eww-list-bookmarks) (cond (*is-android* diff --git a/lisp/init-package.el b/lisp/init-package.el @@ -83,6 +83,13 @@ _a_ : all dwim (eshell-load . ghostel-eshell-visual-command-mode) (ghostel-mode . (lambda () (cns-mode -1))) :config + (defun my-ghostel-send-C-k-and-kill () + "Send `C-k' to ghostel. +Like normal Emacs `C-k'. Kill to end of line and put content in kill-ring." + (interactive) + (kill-ring-save (point) (line-end-position)) + (ghostel-send-key "k" "ctrl")) + (setq eshell-destroy-buffer-when-process-dies t) (defalias 'eshell/v 'eshell/ghostel)) @@ -180,7 +187,7 @@ _a_ : all dwim '((magit-project-status "Magit" ?v) (ghostel-project "Ghostel" ?t) (project-query-replace-regexp "Query Replace" ?q) - (consult-grep "Grep" ?g) + (consult-git-grep "Grep" ?g) (consult-project-buffer "Buffers" ?b) (project-ibuffer "Ibuffer" ?i) (pi-coding-agent "Pi" ?a)))))) @@ -212,7 +219,6 @@ _a_ : all dwim ([remap describe-key] . helpful-key) ([remap describe-symbol] . helpful-symbol) :map helpful-mode-map - ("C-x K" . helpful-kill-buffers) ("r" . remove-hook-at-point))) ;; typing game @@ -314,14 +320,6 @@ _a_ : all dwim ;; elfeed (use-package elfeed :config - (defun my-elfeed-search-show-entry-other-window () - "Like `elfeed-search-show-entry' but show the elfeed entry buffer in another window." - (interactive) - (let ((display-buffer-alist '(("\\*elfeed-entry\\*" - (display-buffer-reuse-window - display-buffer-pop-up-window))))) - (call-interactively #'elfeed-search-show-entry))) - (defun my-elfeed-search-preview-other-window () "Preview currently selected elfeed entry in another window." (interactive) diff --git a/lisp/init-terminal.el b/lisp/init-terminal.el @@ -204,6 +204,16 @@ (interactive) (message "Emacs loaded in %s." (emacs-init-time))) +(defun my-scratch-buffer (&optional arg) + "Switch to the *scratch* buffer. +With a prefix ARG create a new *scratch* buffer." + (interactive "P") + (if arg + (let ((buf (generate-new-buffer "*scratch*"))) + (switch-to-buffer buf) + (funcall initial-major-mode)) + (scratch-buffer))) + (defun crux-get-positions-of-line-or-region () "Return positions (beg . end) of the current line or region." (let (beg end) @@ -256,9 +266,9 @@ there's a region, all lines that region covers will be duplicated." ;; scratch buffer (if *is-mac* - (keymap-global-set "C-c <f12>" #'scratch-buffer) - (keymap-global-set "C-c <delete>" #'scratch-buffer) - (keymap-global-set "C-c <deletechar>" #'scratch-buffer)) + (keymap-global-set "C-c <f12>" #'my-scratch-buffer) + (keymap-global-set "C-c <delete>" #'my-scratch-buffer) + (keymap-global-set "C-c <deletechar>" #'my-scratch-buffer)) ;; diff (with-eval-after-load 'diff-mode