diff options
| author | verdant <im@verdant.ee> | 2026-05-27 00:09:49 +0800 |
|---|---|---|
| committer | verdant <im@verdant.ee> | 2026-05-27 00:09:49 +0800 |
| commit | 3694ffe5aac5153a9725e5d2ede2d6863a140125 (patch) | |
| tree | 58d736b40549926b1d2cd0cfd1c36a79f90118d0 /config.org | |
| parent | c88c16a82bcd2e270fbbc76b7fb675f311d2d17f (diff) | |
| download | vemacs-3694ffe5aac5153a9725e5d2ede2d6863a140125.tar.gz vemacs-3694ffe5aac5153a9725e5d2ede2d6863a140125.zip | |
Update: 2026-05-27
- Fix package archive source of gnu
- Turn off Evil mode
- Turn off line-numbers-mode
- Add a keymap of org-agenda (C-c a)
- Add vterm
- Add global-hl-line-mode
- Add alpha background
- Remove configuration of jieba
- Remove commented ivy-posframe
- Remove holo-layer
- Open dired instead dashboard
- Load theme ef-dark
- Seperate programming and text editing
Diffstat (limited to 'config.org')
| -rw-r--r-- | config.org | 327 |
1 files changed, 121 insertions, 206 deletions
@@ -6,38 +6,59 @@ ;; -*- lexical-binding: t; -*- (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) - (add-to-list 'package-archives '("gnu" . "https://https://elpa.gnu.org/packages/") t) + (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/") t) (add-to-list 'package-archives '("melpa" . "https://mirrors.ustc.edu.cn/elpa/melpa/") t) (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 + (use-package evil + :init + (setq evil-want-keybinding nil evil-want-C-u-scroll t) - :config - (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 + :config + (evil-define-key 'normal org-mode-map (kbd "<tab>") #'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) #+end_src -** olivetti + +** 自动匹配括号 #+begin_src emacs-lisp - (use-package olivetti) + (electric-pair-mode) #+end_src -** deno-bridge-jieba +* 编程 +** sis #+begin_src emacs-lisp - (add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/deno-bridge-jieba")) + (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)) + )) #+end_src + ** yasnippet #+begin_src emacs-lisp (use-package yasnippet @@ -75,11 +96,6 @@ :map minibuffer-local-map ("C-r" . counsel-minibuffer-history))) - ;; (use-package ivy-posframe - ;; :ensure t - ;; :config - ;; (ivy-posframe-mode t)) - (use-package ivy-rich :ensure t :config @@ -137,104 +153,49 @@ :config (setq clang-format-executable (executable-find "clang-format"))) #+end_src -** sis - -#+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)) - )) -#+end_src - -** 自动匹配括号 -#+begin_src emacs-lisp -(electric-pair-mode) -#+end_src ** Flycheck #+begin_src emacs-lisp -(global-flycheck-mode) + (global-flycheck-mode) #+end_src * Dired #+begin_src emacs-lisp + (setq dired-recursive-copies 'always) + (setq dired-recursive-deletes 'always) + (setq dired-dwim-target t) + + (put 'dired-find-alternate-file 'disabled nil) + (with-eval-after-load 'dired + (define-key dired-mode-map (kbd "RET") 'dired-find-alternate-file) + (define-key dired-mode-map (kbd "^") (lambda () (interactive) (find-alternate-file "..")))) + + (defun dired-sort-size () (interactive) (dired-sort-other (concat dired-listing-switches "S"))) + (defun dired-sort-extension () (interactive) (dired-sort-other (concat dired-listing-switches "X"))) + (defun dired-sort-ctime () (interactive) (dired-sort-other (concat dired-listing-switches "ct"))) + (defun dired-sort-utime () (interactive) (dired-sort-other (concat dired-listing-switches "ut"))) + (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 ""))) -(setq dired-recursive-copies 'always) -(setq dired-recursive-deletes 'always) -(setq dired-dwim-target t) - -(put 'dired-find-alternate-file 'disabled nil) -(with-eval-after-load 'dired - (define-key dired-mode-map (kbd "RET") 'dired-find-alternate-file) - (define-key dired-mode-map (kbd "^") (lambda () (interactive) (find-alternate-file "..")))) ; was dired-up-directory) - -(setq dired-dwim-target t) - -;; dired-sort -(defun dired-sort-size () - "Dired sort by size." - (interactive) - (dired-sort-other (concat dired-listing-switches "S"))) - -(defun dired-sort-extension () - "Dired sort by extension." - (interactive) - (dired-sort-other (concat dired-listing-switches "X"))) - -(defun dired-sort-ctime () - "Dired sort by create time." - (interactive) - (dired-sort-other (concat dired-listing-switches "ct"))) - -(defun dired-sort-utime () - "Dired sort by access time." - (interactive) - (dired-sort-other (concat dired-listing-switches "ut"))) - -(defun dired-sort-time () - "Dired sort by time." - (interactive) - (dired-sort-other (concat dired-listing-switches "t"))) - -(defun dired-sort-name () - "Dired sort by name." - (interactive) - (dired-sort-other (concat dired-listing-switches ""))) -;; 在 Dired 中,按`l`进入文件,按`h`回到上一级目录 -(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) - (define-key dired-mode-map (kbd "C-f") nil) - (define-key dired-mode-map (kbd "C-b") #'dired-up-directory) - (define-key dired-mode-map (kbd "C-f") #'dired-find-file))) - -(global-set-key (kbd "<escape>") #'my/keyboard-escape-quit) - -(global-auto-revert-mode t) ; 另一程序修改文件让 Emacs 及时刷新 Buffer + (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) + (define-key dired-mode-map (kbd "C-f") nil) + (define-key dired-mode-map (kbd "C-b") #'dired-up-directory) + (define-key dired-mode-map (kbd "C-f") #'dired-find-file))) + + (global-auto-revert-mode t) #+end_src * 邮件 ** mu4e 这个东西的配置实在是太庞大了,懒得细拆了。 #+begin_src emacs-lisp (require 'smtpmail) - (add-to-list 'load-path "/usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14") - (setq gnutls-algorithm-priority "NORMAL:%COMPAT") - (defun mu4e-goodies~break-cjk-word (word) "Break CJK word into list of bi-grams like: 我爱你 -> 我爱 爱你" (if (or (<= (length word) 2) @@ -388,36 +349,25 @@ (("C-x o" . ace-window))) #+end_src ** dashboard -我突然发现dashboard除了好看没有任何用处(对我来说)。 +我突然发现dashboard除了好看没有任何用处(对我来说),所以我的设置是进入 +Emacs 就开 Dired #+begin_src emacs-lisp - (add-hook 'after-init-hook - (lambda () - (setq inhibit-startup-screen t) - (setq initial-buffer-choice "~"))) + (add-hook 'after-init-hook + (lambda () + (setq inhibit-startup-screen t) + (setq initial-buffer-choice "~"))) #+end_src ** 主题 #+begin_src emacs-lisp (setq custom-safe-themes t) - ; (load-theme 'ef-dark) -#+end_src - -** 窗口大小 -#+begin_src emacs-lisp - (set-face-attribute - 'default nil - :height 120) + (load-theme 'ef-dark) #+end_src ** 背景透明 #+begin_src emacs-lisp - ;; (setq default-frame-alist '((alpha-background . 80))) + (setq default-frame-alist '((alpha-background . 85))) #+end_src -** 新窗口平均其他左右窗口 -#+begin_src emacs-lisp - ;; (setq window-combination-resize t) -#+end_src - ** 光标拉伸到字符宽度 #+begin_src emacs-lisp (setq x-stretch-cursor t) @@ -433,16 +383,6 @@ #+begin_src emacs-lisp (set-frame-font (font-spec :family "FiraMono Nerd Font Mono" :size 18)) #+end_src -** Holo-layer -#+begin_src emacs-lisp - (add-to-list 'load-path (expand-file-name "~/.emacs.d/holo-layer")) - (require 'holo-layer) - (holo-layer-enable) - (setq holo-layer-enable-cursor-animation t - holo-layer-enable-indent-rainbow t - holo-layer-active-window-color t - holo-layer-inactive-window-color t) -#+end_src * MIT-Scheme #+begin_src emacs-lisp (setq scheme-program-name "mit-scheme") @@ -459,10 +399,10 @@ * Markdown ** 优化环境 #+begin_src emacs-lisp + (use-package olivetti) (defun setup-markdown-writing-environment () "为 Markdown 写作优化的环境:开启 Olivetti,关闭行号。" (interactive) - (display-line-numbers-mode -1) (olivetti-mode)) (add-hook 'markdown-mode-hook @@ -475,28 +415,34 @@ * Org ** Agenda #+begin_src emacs-lisp - (setq org-agenda-files '("~/org/")) + (global-set-key (kbd "C-c a") 'org-agenda) #+end_src -** 边距 +** 边距与强制渲染 Hook #+begin_src emacs-lisp - (lambda () (progn - (setq left-margin-width 2) - (setq right-margin-width 2) - (set-window-buffer nil (current-buffer)))) + (defun my-org-mode-setup () + (setq left-margin-width 1) + (setq right-margin-width 2) + (org-restart-font-lock) + (font-lock-mode 1)) + + (add-hook 'org-mode-hook 'my-org-mode-setup) #+end_src + ** 微调 #+begin_src emacs-lisp (setq org-startup-indented t - org-ellipsis " " ;; folding symbol + org-ellipsis " " org-pretty-entities t - org-hide-emphasis-markers t - ;; show actually italicized text instead of /italicized text/ + org-hide-emphasis-markers nil + org-src-fontify-natively t + org-src-tab-acts-natively t org-agenda-block-separator "" org-fontify-whole-heading-line t 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 做幻灯片]] @@ -514,53 +460,6 @@ reveal 自动按照标题来布局,相同级别的为同一层级,体现的 PRETTY COOL! * 杂项 -** 自动保存 -#+begin_src emacs-lisp - (auto-save-mode 1) -#+end_src -** 时间显示 -#+begin_src emacs-lisp - (setq ring-bell-function 'ignore - custom-safe-themes t ; 禁用非法操作提示 - cursor-type 'box - fringes-outside-margins t - display-time-24hr-format t ; 时间使用 24 小时制 - display-time-day-and-date t ; 时间显示包括日期和时间 - display-time-interval 60 ; 刷新频率 - display-time-format "%a %b %-e %H:%M" ; 时间格式 - scroll-step 1 - scroll-conservatively 10000) - (when (display-graphic-p) - (set-frame-size (selected-frame) 143 40)) - (global-display-line-numbers-mode -1) - (display-time-mode 1) -#+end_src - -** 关闭 Emacs 时询问 -#+begin_src emacs-lisp - (setq confirm-kill-emacs #'yes-or-no-p ; 关闭 Emacs 时询问 y or n - auto-save-visited-interval 5 - native-comp-async-report-warinings-errors nil - backup-directory-alist `((".*" . ,temporary-file-directory)) - auto-save-file-name-transforms `((".*" ,temporary-file-directory t)) - select-enable-clipboard t - select-enable-primary t - interprogram-cut-function - (lambda (text &optional push) - (let ((process-connection-type nil)) - (let ((proc (start-process "xclip" nil "xclip" "-selection" "clipboard"))) - (process-send-string proc text) - (process-send-eof proc)))) - interprogram-paste-function - (lambda () - (shell-command-to-string "xclip -o -selection clipboard"))) -#+end_src - -** 删除文件移动到垃圾箱 -#+begin_src emacs-lisp - (setq-default delete-by-moving-to-trash t) -#+end_src - ** 快速退出 minibuffer #+begin_src emacs-lisp (defun my/keyboard-escape-quit() @@ -571,34 +470,50 @@ PRETTY COOL! (global-set-key (kbd "<escape>") #'my/keyboard-escape-quit) #+end_src +** 自动保存与时间显示 +#+begin_src emacs-lisp + (auto-save-mode 1) (setq ring-bell-function 'ignore custom-safe-themes + t cursor-type 'box fringes-outside-margins t display-time-24hr-format + t display-time-day-and-date t display-time-interval 60 + display-time-format "%a %b %-e %H:%M" scroll-step 1 + scroll-conservatively 10000) + + (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)) + + (display-time-mode 1) +#+end_src +** 删除文件移动到垃圾箱 +#+begin_src emacs-lisp + (setq-default delete-by-moving-to-trash t) +#+end_src + ** 减轻数括号的痛苦 #+begin_src emacs-lisp - (show-paren-mode 1) ; 减轻数括号的痛苦 + (show-paren-mode 1) #+end_src ** 编码风格 #+begin_src emacs-lisp - (setq c-basic-offset 8 - tab-width 8) + (setq c-basic-offset 8 tab-width 8) #+end_src ** counsel #+begin_src emacs-lisp - (use-package counsel - :ensure t) + (use-package counsel :ensure t) #+end_src ** tangle 快捷键 #+begin_src emacs-lisp - (global-set-key (kbd "C-x t") (lambda () - (interactive) - (goto-char (point-min)) - (forward-line 1) - (org-babel-tangle))) + (global-set-key (kbd "C-x t") (lambda () (interactive) (goto-char + (point-min)) (forward-line 1) + (org-babel-tangle))) #+end_src * Vterm #+begin_src emacs-lisp -(use-package vterm - :ensure t) + (use-package vterm :ensure t) #+end_src * provide #+begin_src emacs-lisp |
