From 419aae18be6f76539ffbdd44edba4e953ac041c0 Mon Sep 17 00:00:00 2001 From: verdant Date: Wed, 1 Jul 2026 09:31:17 +0800 Subject: Package: remove evil, dashboard, ivy-posframe configure yasnippet, mu4e Configuration: - Markdown: Add (setup-markdown-writing-environment) when enable markdown-mode and org-mode. - Add pdf-tools --- config.org | 185 +++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 120 insertions(+), 65 deletions(-) diff --git a/config.org b/config.org index 6a3d299..c35372e 100644 --- a/config.org +++ b/config.org @@ -3,7 +3,7 @@ * 启动 #+begin_src emacs-lisp - ;; -*- lexical-binding: t; -*- + ;; -*- lexical-binding: t; -*- #+end_src ** 个人信息 #+begin_src emacs-lisp @@ -12,7 +12,6 @@ #+end_src ** 包源 #+begin_src emacs-lisp - (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/") t) @@ -20,30 +19,12 @@ (add-to-list 'package-archives '("nongnu" . "https://mirrors.ustc.edu.cn/elpa/nongnu/") t) #+end_src * 编辑相关 -** Evil -#+begin_src emacs-lisp - (use-package evil - :init - (setq evil-want-keybinding nil - evil-want-C-u-scroll t) - :config - (evil-define-key 'normal org-mode-map (kbd "") #'org-cycle) - ;;(evil-mode) - :ensure nil) - (use-package evil-collection - :after evil - :ensure t - :init - (setq evil-collection-mode-list '(dired ibuffer bindings)) - :config - (evil-collection-init)) -#+end_src - -** 高亮当前行 +** 保存自动格式化 #+begin_src emacs-lisp - (global-hl-line-mode) + (add-hook 'c-mode-hook + (lambda () + (add-hook 'before-save-hook #'clang-format-buffer nil t))) #+end_src - ** 自动匹配括号 #+begin_src emacs-lisp (electric-pair-mode) @@ -54,30 +35,24 @@ :ensure t :config (setq yas-snippet-dirs - '("~/.emacs.d/snippets")) + '("~/.emacs.d/snippets")) (yas-global-mode 1)) #+end_src -* 编程 -** sis + +** Compile command #+begin_src emacs-lisp - (use-package sis - :config - (sis-ism-lazyman-config "1" "2" 'fcitx5) - (sis-global-cursor-color-mode t) - ;; 启用 /respect/ 模式 - (sis-global-respect-mode t) - ;; 为所有缓冲区启用 /context/ 模式 - (sis-global-context-mode t) - ;; 为所有缓冲区启用 /inline english/ 模式 - (sis-global-inline-mode t) - (with-eval-after-load 'evil - ;; 强制在进入插入模式时触发 sis 的恢复逻辑 - ;;(add-hook 'evil-insert-state-entry-hook #'sis-context-restore) - ; (add-hook 'evil-insert-state-entry-hook #'sis-set-chinese)) - )) +(global-set-key (kbd "C-c c") 'compile) +#+end_src + +** GDScript Mode +#+begin_src emacs-lisp +(use-package gdscript-mode + :ensure t + :hook (gdscript-mode . eglot-ensure)) #+end_src +* 编程 ** ivy #+begin_src emacs-lisp (use-package ivy @@ -170,6 +145,7 @@ (global-flycheck-mode) #+end_src * Dired +** 默认设置 #+begin_src emacs-lisp (setq dired-recursive-copies 'always) (setq dired-recursive-deletes 'always) @@ -187,11 +163,6 @@ (defun dired-sort-time () (interactive) (dired-sort-other (concat dired-listing-switches "t"))) (defun dired-sort-name () (interactive) (dired-sort-other (concat dired-listing-switches ""))) - (with-eval-after-load 'dired - (evil-define-key 'normal dired-mode-map - (kbd "h") #'dired-up-directory - (kbd "l") #'dired-find-file)) - (add-hook 'dired-mode-hook (lambda () (define-key dired-mode-map (kbd "C-b") nil) @@ -201,6 +172,28 @@ (global-auto-revert-mode t) #+end_src + +** 目录排在文件之前 +#+begin_src emacs-lisp + ;; https://kuanyui.github.io/2014/06/21/dired-tutorial-and-essential-configs/ + (defun dired-directory-sort () + "Dired sort hook to list directories first." + (save-excursion + (let (buffer-read-only) + (forward-line 2) ;; beyond dir. header + (sort-regexp-fields t "^.*$" "[ ]*." (point) (point-max)))) + (and (featurep 'xemacs) + (fboundp 'dired-insert-set-properties) + (dired-insert-set-properties (point-min) (point-max))) + (set-buffer-modified-p nil)) + + (add-hook 'dired-after-readin-hook 'dired-directory-sort) +#+end_src + +** 使用 KB / MB 显示文件大小 +#+begin_src emacs-lisp + (setq dired-listing-switches "-alh") +#+end_src * 邮件 ** mu4e 这个东西的配置实在是太庞大了,懒得细拆了。 @@ -268,7 +261,7 @@ :init (setq mu4e-debug t) - + (setq message-send-mail-function 'sendmail-send-it sendmail-program "/usr/bin/msmtp" mail-specify-envelope-from t @@ -291,12 +284,24 @@ :name "Verdant" :match-func (lambda (msg) (when msg - (string-prefix-p "/ljc" (mu4e-message-field msg :maildir)))) + (string-prefix-p "/verdant" (mu4e-message-field msg :maildir)))) :vars '((mu4e-sent-folder . "/Verdant/Sent") (mu4e-trash-folder . "/Verdant/Trash") (mu4e-refile-folder . "/Verdant/Archive") (mu4e-drafts-folder . "/Verdant/Drafts") - (user-mail-address . "im@verdant.ee"))))) + (user-mail-address . "im@verdant.ee"))) + + (make-mu4e-context + :name "Outlook" + :match-func (lambda (msg) + (when msg + (string-prefix-p "/outlook" (mu4e-message-field msg :maildir)))) + :vars '((mu4e-sent-folder . "/Outlook/Sent") + (mu4e-trash-folder . "/Outlook/Trash") + (mu4e-refile-folder . "/Outlook/Archive") + (mu4e-drafts-folder . "/Outlook/Drafts") + (user-mail-address . "verdant.im@outlook.com") + (user-full-name . "Verdant"))))) (setq mu4e-compose-complete-only-personal t mu4e-view-show-addresses t @@ -371,12 +376,14 @@ Emacs 就开 Dired ** 主题 #+begin_src emacs-lisp (setq custom-safe-themes t) - (load-theme 'ef-dark) + (when (display-graphic-p) + ;(load-theme 'ef-dark) + (load-theme 'doom-Iosvkem) + ) #+end_src - ** 背景透明 #+begin_src emacs-lisp - (setq default-frame-alist '((alpha-background . 85))) +(setq default-frame-alist '((alpha-background . 100))) #+end_src ** 光标拉伸到字符宽度 #+begin_src emacs-lisp @@ -413,14 +420,14 @@ Emacs 就开 Dired (defun setup-markdown-writing-environment () "为 Markdown 写作优化的环境:开启 Olivetti,关闭行号。" (interactive) - (olivetti-mode)) + (olivetti-mode) + + (display-line-numbers-mode -1) + ) (add-hook 'markdown-mode-hook (lambda () - (setup-markdown-writing-environment) - ;; 取消 Evil 的 TAB 绑定,使用 markdown-cycle - (define-key evil-normal-state-local-map (kbd "TAB") 'markdown-cycle) - (define-key evil-insert-state-local-map (kbd "TAB") 'indent-for-tab-command))) + (setup-markdown-writing-environment))) #+end_src * Org ** Agenda @@ -452,7 +459,6 @@ Emacs 就开 Dired org-fontify-done-headline t org-fontify-quote-and-verse-blocks t) #+end_src - ** ox-reveal 参考教程:[[https://www.zhangjiee.com/blog/2019/emacs-slide.html][Emacs 基于 org-reveal 做幻灯片]] @@ -468,7 +474,25 @@ reveal 自动按照标题来布局,相同级别的为同一层级,体现的 #+end_src PRETTY COOL! - +** org-noter +#+begin_src emacs-lisp + (use-package org-noter + :ensure t + :config + (setq org-noter-notes-search-path '("~/org/wiki/"))) +#+end_src +* PDF Tools +#+begin_src emacs-lisp + (use-package pdf-tools + :ensure t + :config + (pdf-tools-install) + (add-hook 'pdf-view-mode-hook (lambda () (display-line-numbers-mode -1))) + (add-hook 'pdf-view-mode-hook 'pdf-tools-enable-minor-modes) + (setq org-noter-always-create-frame nil) + (setq org-noter-window-layout 'horizontal-split) ; 强制在当前屏幕左右水平分屏 + ) +#+end_src * 杂项 ** 快速退出 minibuffer #+begin_src emacs-lisp @@ -490,11 +514,12 @@ PRETTY COOL! (when (display-graphic-p) (set-frame-size (selected-frame) 143 40)) - (if (fboundp 'global-display-line-numbers-mode) - (global-display-line-numbers-mode -1) (setq - display-line-numbers-type nil)) + ;; (if (fboundp 'global-display-line-numbers-mode) + ;; (global-display-line-numbers-mode -1) (setq + ;; display-line-numbers-type nil)) - (display-time-mode 1) + ;; (display-time-mode 1) + (global-display-line-numbers-mode) #+end_src ** 删除文件移动到垃圾箱 #+begin_src emacs-lisp @@ -508,7 +533,7 @@ PRETTY COOL! ** 编码风格 #+begin_src emacs-lisp - (setq c-basic-offset 8 tab-width 8) + (setq c-basic-offset 4 tab-width 4) #+end_src ** counsel @@ -530,9 +555,39 @@ PRETTY COOL! (point-min)) (forward-line 1) (org-babel-tangle))) #+end_src +** 备份 +#+begin_src emacs-lisp + (setq + backup-by-copying t ; 自动备份 + backup-directory-alist + '(("." . "~/tmp")) ; 自动备份目录 + delete-old-versions t ; 自动删除旧的备份文件 + kept-new-versions 3 ; 保留最近的3个备份文件 + kept-old-versions 1 ; 保留最早的1个备份文件 + version-control t) ; 多次备份 +#+end_src * Vterm #+begin_src emacs-lisp (use-package vterm :ensure t) +#+end_src +* elfeed-org +#+begin_src emacs-lisp + (use-package elfeed-org + :ensure t + :config + (setq rmh-elfeed-org-files (list "~/.emacs.d/elfeed.org"))) + (elfeed-org) + + (add-hook 'elfeed-show-mode-hook (lambda () + (display-line-numbers-mode -1) + (olivetti-mode))) +#+end_src +* Mastodon +#+begin_src emacs-lisp + (setq mastodon-instance-url "https://akk.glowisle.me" + mastodon-active-user "verdabt") + + #+end_src * provide #+begin_src emacs-lisp -- cgit v1.2.3