commit 0dcb43a186d6a3cd5fe11b829954be4bad2e587a
parent 31e77f0208afeabc37f037534655b037f85b6696
Author: andsy10 <andsy1016@gmail.com>
Date: Fri, 28 Aug 2026 02:16:20 +0800
Update keybindings
Diffstat:
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