From 311aefe6f93246270ac71a4c556cd15b57f9d1ee Mon Sep 17 00:00:00 2001 From: trogloxene Date: Fri, 3 Apr 2026 19:01:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20dirvish=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=92=8C=E5=85=B6=E4=BB=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 init-dired.el 基础配置 - 调整 corfu 初始化方式 - 修改 dashboard 显示设置和快捷键 - 更新键位绑定 - 调整 org-journal 格式 - 修复 scratch buffer 模式设置 - 更新主题颜色 --- init.el | 1 + lisp/init-completion.el | 6 ++-- lisp/init-dashboard.el | 5 ++-- lisp/init-dired.el | 56 ++++++++++++++++++++++++++++++++++++ lisp/init-kbd.el | 6 ++-- lisp/init-org.el | 4 +-- lisp/init-startup.el | 8 +++++- lisp/my-base16-dark-theme.el | 1 + 8 files changed, 77 insertions(+), 10 deletions(-) create mode 100644 lisp/init-dired.el diff --git a/init.el b/init.el index 4e1109b..3a57607 100644 --- a/init.el +++ b/init.el @@ -20,6 +20,7 @@ (require 'init-org) (require 'init-completion) (require 'init-window) +(require 'init-dired) (require 'init-kbd) (require 'init-ui) (require 'init-dashboard) diff --git a/lisp/init-completion.el b/lisp/init-completion.el index 5506647..2a5bbab 100644 --- a/lisp/init-completion.el +++ b/lisp/init-completion.el @@ -29,11 +29,13 @@ gud-mode vterm-mode) t)) - :hook ((after-init . global-corfu-mode) - (global-corfu-mode . corfu-popupinfo-mode) + :hook ((global-corfu-mode . corfu-popupinfo-mode) (global-corfu-mode . corfu-history-mode)) + :init (global-corfu-mode) + :config + (add-hook 'after-init-hook #'global-corfu-mode) ;;Quit completion before saving (add-hook 'before-save-hook #'corfu-quit) (advice-add #'persistent-scratch-save :before #'corfu-quit) diff --git a/lisp/init-dashboard.el b/lisp/init-dashboard.el index e5d3231..86c3885 100644 --- a/lisp/init-dashboard.el +++ b/lisp/init-dashboard.el @@ -13,7 +13,7 @@ (setq dashboard-startup-banner 'ascii) (setq dashboard-center-content t) (setq dashboard-navigation-cycle t) - (setq dashboard-items '((recents . 10) + (setq dashboard-items '((recents . 15) (bookmarks . 5) (projects . 5))) (add-hook 'emacs-startup-hook @@ -28,7 +28,8 @@ (setq dashboard-footer-messages '( "Hello." "Hi." - ))) + )) + (setq dashboard-item-shortcuts '((recents . "r") (bookmarks . "b") (projects . "p") (agenda . "a") (registers . "e")))) (provide 'init-dashboard) ;;; init-dashboard.el ends here diff --git a/lisp/init-dired.el b/lisp/init-dired.el new file mode 100644 index 0000000..e022ecf --- /dev/null +++ b/lisp/init-dired.el @@ -0,0 +1,56 @@ +;;; init-dired.el --- dired & dirvish -*-lexical-binding: t -*- + +;;; Commentary: + +;;; Code: + +(with-eval-after-load 'dirvish + (define-key dirvish-mode-map (kbd "") + (lambda () (interactive) (forward-line 1) (dired-move-to-filename))) + (define-key dirvish-mode-map (kbd "C-n") + (lambda () (interactive) (forward-line 1) (dired-move-to-filename))) + (define-key dirvish-mode-map (kbd "n") + (lambda () (interactive) (forward-line 1) (dired-move-to-filename))) + (define-key dirvish-mode-map (kbd "b") 'dired-up-directory) + (define-key dirvish-mode-map (kbd "C-b") 'dired-up-directory) + (define-key dirvish-mode-map (kbd "") 'dired-up-directory) + (define-key dirvish-mode-map (kbd "") 'dired-find-file) + (define-key dirvish-mode-map (kbd "C-f") 'dired-find-file) + (define-key dirvish-mode-map (kbd "") 'dirvish-layout-toggle)) + +(with-eval-after-load 'dirvish + (add-hook 'dired-mode-hook #'dired-hide-details-mode)) + +;; dirvish +(use-package dirvish + :init + (dirvish-override-dired-mode) + :config + (setq dirvish-hide-details nil) + (setq dirvish-use-mode-line 'global) + :custom + (dirvish-quick-access-entries + (when *is-windows* + '(("h" "~/" "Home") + ("e" "~/.emacs.d/") + ("p" "c:/Users/gaozh/Pictures/Screenshots/" "Pictures") + ("d" "f:/下载25-2-10/" "Download") + ("v" "f:/luping26-1-11/" "Videos"))))) + +(setq dired-listing-switches + "-l --almost-all --human-readable --group-directories-first --no-group") +(put 'dired-find-alternate-file 'disabled nil) + +(with-eval-after-load 'dirvish + (global-set-key (kbd "C-c d a") 'dirvish-quick-access) + (global-set-key (kbd "C-c d s") 'dirvish-side) + (global-set-key (kbd "C-c d h") 'dirvish-history-menu) + (global-set-key (kbd "C-x d") 'dired-jump) + (global-set-key (kbd "C-x C-j") 'dired) + (define-key dired-mode-map (kbd "h") 'dirvish-history-menu) + (define-key dired-mode-map (kbd "M-,") 'scroll-other-window-down) + (define-key dired-mode-map (kbd "M-.") 'scroll-other-window)) + +(provide 'init-dired) + +;;; init-dired.el ends here diff --git a/lisp/init-kbd.el b/lisp/init-kbd.el index 52a6a79..f583cc5 100644 --- a/lisp/init-kbd.el +++ b/lisp/init-kbd.el @@ -191,7 +191,7 @@ Disable jinx-mode if it's enable and global-jinx-mode is disable , otherwise tog ;; undo-fu (global-set-key (kbd "C-/") 'undo-fu-only-undo) -(global-set-key (kbd "C-.") 'undo-fu-only-redo) +(global-set-key (kbd "C-?") 'undo-fu-only-redo) ;; vundo (global-set-key (kbd "C-x u") 'vundo) @@ -230,7 +230,7 @@ Disable jinx-mode if it's enable and global-jinx-mode is disable , otherwise tog ;; hungry-delete (global-set-key (kbd "C-c DEL") 'hungry-delete-backward) ;; 向后删除到第一个非空字符 -(global-set-key (kbd "C-c d") 'hungry-delete-forward) ;; 向前删除到第一个非空字符 +(global-set-key (kbd "C-c C-") 'hungry-delete-forward) ;; 向前删除到第一个非空字符 ;; drag-stuff (global-set-key (kbd "M-P") 'drag-stuff-up) @@ -364,7 +364,7 @@ Disable jinx-mode if it's enable and global-jinx-mode is disable , otherwise tog (global-set-key (kbd "C-c m d") 'my-emms-play-directory) ;; dashboard -(global-set-key (kbd "C-c ") 'dashboard-open) +(global-set-key (kbd "C-c D") 'dashboard-open) (provide 'init-kbd) diff --git a/lisp/init-org.el b/lisp/init-org.el index 1d8d915..db4116a 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -33,9 +33,9 @@ (use-package org-journal :config (setq org-journal-file-format "%Y-%m-%d.org" - org-journal-file-header "#+title: Daily Journal\n#+category: journal\n#+STARTUP: content\n\n" - org-journal-time-format "%m-%d \n:PROPERTIES:\n:Created: <%Y-%m-%d %a %H:%M:%S>\n:END:\n" + org-journal-file-header "#+title: Daily Journal\n#+category: journal\n#+STARTUP: content\n\n" org-journal-time-prefix "\n*** TODO " + org-journal-time-format "%m-%d \n:PROPERTIES:\n:Created: <%Y-%m-%d %a %H:%M:%S>\n:END:\n" org-journal-hide-entries-p t org-journal-date-format (lambda (time) (format "* %s %s\n:PROPERTIES:\n:Created: [%s]\n:END:" diff --git a/lisp/init-startup.el b/lisp/init-startup.el index 992d20b..97600de 100644 --- a/lisp/init-startup.el +++ b/lisp/init-startup.el @@ -44,7 +44,7 @@ ;; 当文件被外部修改时自动刷新 (global-auto-revert-mode 1) -;; 开启rencent file mode +;; 开启recent file mode (recentf-mode) (setq recentf-max-saved-items 30) ;; 最大保存数量 @@ -58,6 +58,12 @@ (setq initial-scratch-message "") +(defun my/scratch-set-mode (&rest _) + (when (eq major-mode 'fundamental-mode) + (funcall initial-major-mode))) + +(advice-add 'scratch-buffer :after #'my/scratch-set-mode) + ;; 开启server mode (server-start) diff --git a/lisp/my-base16-dark-theme.el b/lisp/my-base16-dark-theme.el index 689ff64..2c92a5d 100644 --- a/lisp/my-base16-dark-theme.el +++ b/lisp/my-base16-dark-theme.el @@ -30,6 +30,7 @@ `(font-lock-string-face ((,class (:foreground ,green)))) `(dashboard-footer-face ((,class (:foreground ,blue)))) `(dashboard-text-banner ((,class (:foreground ,green)))) + `(dashboard-heading ((,class (:foreground ,green :weight bold)))) `(vertico-current ((,class (:background ,base02 :extend t :underline nil))))))) (provide-theme 'my-base16-dark)