Files
emacs.d/init.el
T
2026-08-25 16:13:10 +08:00

117 lines
3.6 KiB
EmacsLisp

;;=======================================
;; Local mirror of package archives
;;=======================================
(require 'package)
(setq package-archives '(("gnu" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
("nongnu" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/nongnu/")
("melpa" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))
(package-initialize)
;;=======================================
;; Load local config script
;; (not git controlled, like .env file)
;;=======================================
(setq local-file (expand-file-name "local.el" user-emacs-directory))
(when (file-exists-p local-file)
(load-file local-file))
;;===================
;; Handy settings
;;===================
(tool-bar-mode -1)
(scroll-bar-mode -1)
(global-display-line-numbers-mode 0)
(global-auto-revert-mode t)
(global-hl-line-mode t) ; 高亮当前行
(show-paren-mode t) ; 显示匹配括号
(fset 'yes-or-no-p 'y-or-n-p) ; 简化 yes/no 为 y/n
(save-place-mode t) ; 保存文件上次打开的光标位置
(savehist-mode t) ; 记录 M-x/Minibuffer 的历史输入
(delete-selection-mode t) ; 选中文本后输入替换选取
(electric-pair-mode t) ; 输入时自动匹配括号或者引号
(ido-mode t) ; 开启文件和 Buffer 补全
(setq ido-enable-flex-matching t) ; 开启模糊匹配
(ido-everywhere t) ; 在所有可以补全的地方尽量启用 ido
(add-hook 'before-save-hook 'delete-trailing-whitespace) ; 保存时清除行尾空格
(setq dired-listing-switches "-ahl --group-directories-first") ;; 设置 Dired 默认传递给 ls 的参数
(setq mac-command-modifier 'meta)
(setq confirm-kill-emacs 'y-or-n-p)
(setq-default cursor-type '(bar . 2))
(add-to-list 'default-frame-alist '(fullscreen . maximized))
(global-unset-key (kbd "C-SPC"))
(global-set-key (kbd "M-SPC") 'set-mark-command)
(global-set-key (kbd "C-x C-b") 'bs-show)
(global-set-key (kbd "C-,") 'compile)
(windmove-default-keybindings 'meta)
(let ((font (face-attribute 'default :font)))
(when font
(set-face-attribute 'default nil :height 160)))
(setq custom-file (expand-file-name "custom-file.el" user-emacs-directory))
(load custom-file)
;; 为 M-x shell 开启颜色支持
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;; 为 M-x compile 开启颜色支持
(require 'ansi-color)
(defun my/colorize-compilation-buffer ()
(let ((inhibit-read-only t))
(ansi-color-apply-on-region compilation-filter-start (point-max))))
(add-hook 'compilation-filter-hook 'my/colorize-compilation-buffer)
;;====================
;; Backup settings
;;====================
(setq backup-directory-alist `(("." . "~/.emacs.d/backups/")))
(setq version-control t) ; 开启多版本备份
(setq kept-old-versions 2) ; 保留最早的2个版本
(setq kept-new-versions 6) ; 保留最新的6个版本
(setq delete-old-versions t) ; 自动删除中间的多余版本
;;======================
;; Important packages
;;======================
;; dark theme
(use-package gruber-darker-theme
:ensure t
:init
(load-theme 'gruber-darker t))
(use-package dimmer
:ensure t
:init
(setq dimmer-fraction 0.3) ; 调整变暗的程度(0.0 到y 1.0,越大越暗,0.3 刚刚好)
:config
(dimmer-mode 1))
;;========================
;; Package settings
;;========================
;; ---- simplec-mode -----------
(add-to-list 'load-path (expand-file-name "vendor/simpc-mode" user-emacs-directory))
(require 'simpc-mode)
(add-to-list 'auto-mode-alist '("\\.[hc]\\(pp\\)?\\'" . simpc-mode))
;; --- end of simplec-mode ------