Created
December 31, 2025 14:52
-
-
Save mumu-lhl/60c97be66e80b7f7ca6d811b2679041a to your computer and use it in GitHub Desktop.
A simple emacs configure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (setq straight-vc-git-default-clone-depth 1) | |
| (defvar bootstrap-version) | |
| (let ((bootstrap-file | |
| (expand-file-name | |
| "straight/repos/straight.el/bootstrap.el" | |
| (or (bound-and-true-p straight-base-dir) | |
| user-emacs-directory))) | |
| (bootstrap-version 7)) | |
| (unless (file-exists-p bootstrap-file) | |
| (with-current-buffer | |
| (url-retrieve-synchronously | |
| "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" | |
| 'silent 'inhibit-cookies) | |
| (goto-char (point-max)) | |
| (eval-print-last-sexp))) | |
| (load bootstrap-file nil 'nomessage)) | |
| (setq inhibit-startup-message t) | |
| (tool-bar-mode -1) | |
| (scroll-bar-mode -1) | |
| (add-to-list 'default-frame-alist '(fullscreen . maximized)) | |
| (set-face-attribute 'default nil :font "Google Sans Code-13") | |
| (electric-pair-mode 1) | |
| (show-paren-mode 1) | |
| (save-place-mode 1) | |
| (delete-selection-mode 1) | |
| (fset 'yes-or-no-p 'y-or-n-p) | |
| (setq visible-bell t) | |
| (set-language-environment "UTF-8") | |
| (setq backup-directory-alist `(("." . ,(expand-file-name "tmp/backups/" user-emacs-directory)))) | |
| (setq auto-save-default nil) | |
| ;; (setq native-comp-deferred-compilation-deny-list '("meow-tree-sitter")) | |
| (global-set-key (kbd "C-x C-b") 'ibuffer) ; 将默认的 list-buffers 替换为强大的 ibuffer | |
| (defun open-init-file () | |
| "Open the init file." | |
| (interactive) | |
| (find-file user-init-file)) | |
| (global-set-key (kbd "C-x c") 'open-init-file) | |
| (global-display-line-numbers-mode 1) | |
| (global-hl-line-mode 1) | |
| (setq display-line-numbers-type 'relative) | |
| (setq display-line-numbers-current-absolute t) | |
| (set-face-attribute 'mode-line-active nil :box 'unspecified) | |
| (set-face-attribute 'mode-line-inactive nil :box 'unspecified) | |
| (recentf-mode 1) | |
| ;; 窗口布局撤销/重做 | |
| (use-package winner | |
| :hook (after-init . winner-mode)) | |
| (use-package ace-window | |
| :straight t | |
| :bind ("M-o" . ace-window) | |
| :config | |
| (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)) ; 使用指法舒适的键位作为编号 | |
| ) | |
| (use-package meow | |
| :straight t | |
| :config | |
| (defun meow-setup () | |
| (setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty) | |
| (meow-motion-define-key | |
| '("j" . meow-next) | |
| '("k" . meow-prev) | |
| '("<escape>" . ignore)) | |
| (meow-leader-define-key | |
| ;; Use SPC (0-9) for digit arguments. | |
| '("1" . meow-digit-argument) | |
| '("2" . meow-digit-argument) | |
| '("3" . meow-digit-argument) | |
| '("4" . meow-digit-argument) | |
| '("5" . meow-digit-argument) | |
| '("6" . meow-digit-argument) | |
| '("7" . meow-digit-argument) | |
| '("8" . meow-digit-argument) | |
| '("9" . meow-digit-argument) | |
| '("0" . meow-digit-argument) | |
| '("/" . meow-keypad-describe-key) | |
| '("?" . meow-cheatsheet)) | |
| (meow-normal-define-key | |
| '("0" . meow-expand-0) | |
| '("9" . meow-expand-9) | |
| '("8" . meow-expand-8) | |
| '("7" . meow-expand-7) | |
| '("6" . meow-expand-6) | |
| '("5" . meow-expand-5) | |
| '("4" . meow-expand-4) | |
| '("3" . meow-expand-3) | |
| '("2" . meow-expand-2) | |
| '("1" . meow-expand-1) | |
| '("-" . negative-argument) | |
| '(";" . meow-reverse) | |
| '("," . meow-inner-of-thing) | |
| '("." . meow-bounds-of-thing) | |
| '("[" . meow-beginning-of-thing) | |
| '("]" . meow-end-of-thing) | |
| '("a" . meow-append) | |
| '("A" . meow-open-below) | |
| '("b" . meow-back-word) | |
| '("B" . meow-back-symbol) | |
| '("c" . meow-change) | |
| '("d" . meow-delete) | |
| '("D" . meow-backward-delete) | |
| '("e" . meow-next-word) | |
| '("E" . meow-next-symbol) | |
| '("f" . meow-find) | |
| '("g" . meow-cancel-selection) | |
| '("G" . meow-grab) | |
| '("h" . meow-left) | |
| '("H" . meow-left-expand) | |
| '("i" . meow-insert) | |
| '("I" . meow-open-above) | |
| '("j" . meow-next) | |
| '("J" . meow-next-expand) | |
| '("k" . meow-prev) | |
| '("K" . meow-prev-expand) | |
| '("l" . meow-right) | |
| '("L" . meow-right-expand) | |
| '("m" . meow-join) | |
| '("n" . meow-search) | |
| '("o" . meow-block) | |
| '("O" . meow-to-block) | |
| '("p" . meow-yank) | |
| '("q" . meow-quit) | |
| '("Q" . meow-goto-line) | |
| '("r" . meow-replace) | |
| '("R" . meow-swap-grab) | |
| '("s" . meow-kill) | |
| '("t" . meow-till) | |
| '("u" . meow-undo) | |
| '("U" . meow-undo-in-selection) | |
| '("v" . meow-visit) | |
| '("w" . meow-mark-word) | |
| '("W" . meow-mark-symbol) | |
| '("x" . meow-line) | |
| '("X" . meow-goto-line) | |
| '("y" . meow-save) | |
| '("Y" . meow-sync-grab) | |
| '("z" . meow-pop-selection) | |
| '("'" . repeat) | |
| '("<escape>" . ignore))) | |
| (meow-setup) | |
| (meow-global-mode 1)) | |
| (use-package doom-themes | |
| :straight t | |
| :custom | |
| ;; Global settings (defaults) | |
| (doom-themes-enable-bold t) ; if nil, bold is universally disabled | |
| (doom-themes-enable-italic t) ; if nil, italics is universally disable | |
| :config | |
| (load-theme 'doom-dracula t)) | |
| (use-package which-key | |
| :straight t | |
| :init (which-key-mode) | |
| :config | |
| (setq which-key-idle-delay 0.3)) | |
| (use-package vertico | |
| :straight t | |
| :init | |
| (vertico-mode)) | |
| (use-package orderless | |
| :straight t | |
| :custom | |
| (completion-styles '(orderless basic)) | |
| (completion-category-overrides '((file (styles basic partial-completion))))) | |
| (use-package marginalia | |
| :straight t | |
| :init | |
| (marginalia-mode)) | |
| (use-package consult | |
| :straight t | |
| :bind (;; 替换原生命令 | |
| ("C-s" . consult-line) ; 像 IDE 一样搜索当前行 | |
| ("C-x b" . consult-buffer) ; 带预览的切换 Buffer | |
| ("M-y" . consult-yank-pop))) ; 可视化的剪切板历史 | |
| (use-package rainbow-delimiters | |
| :straight t | |
| :hook (prog-mode . rainbow-delimiters-mode)) | |
| (use-package super-save | |
| :straight t | |
| :config | |
| (super-save-mode +1) | |
| (setq super-save-auto-save-when-idle t)) | |
| (use-package ws-butler | |
| :straight t | |
| :hook ((prog-mode . ws-butler-mode) | |
| (text-mode . ws-butler-mode))) | |
| (use-package markdown-mode | |
| :straight t | |
| :mode ("README\\.md\\'" . gfm-mode) | |
| :init (setq markdown-command "multimarkdown") | |
| :bind (:map markdown-mode-map | |
| ("C-c C-e" . markdown-do))) | |
| (use-package yasnippet | |
| :straight t | |
| :hook ((prog-mode . yas-minor-mode))) | |
| (use-package meow-tree-sitter | |
| :straight t | |
| :config | |
| (meow-tree-sitter-register-defaults)) | |
| (use-package fountain-mode | |
| :straight t) | |
| (use-package lsp-bridge | |
| :straight '(lsp-bridge :type git :host github :repo "manateelazycat/lsp-bridge" | |
| :files (:defaults "*.el" "*.py" "acm" "core" "langserver" "multiserver" "resources") | |
| :build (:not compile)) | |
| :custom | |
| (lsp-bridge-python-lsp-server "basedpyright") | |
| (lsp-bridge-python-command "/home/mumulhl/.emacs.d/straight/repos/lsp-bridge/.venv/bin/python") | |
| :init | |
| (global-lsp-bridge-mode)) | |
| (use-package savehist | |
| :hook (after-init . savehist-mode) | |
| :config | |
| (setq history-length 1000) | |
| (setq history-delete-duplicates t)) | |
| (use-package avy | |
| :straight t | |
| :bind | |
| (("C-'" . avy-goto-char-2) ; 输 2 个字母就跳 (精准) | |
| ("C-c j" . avy-goto-char-timer))) ; 输任意个,停顿后跳 (最灵活,推荐) | |
| (use-package moody | |
| :straight t | |
| :config | |
| (moody-replace-mode-line-front-space) | |
| (moody-replace-mode-line-buffer-identification) | |
| (moody-replace-vc-mode)) | |
| (use-package minions | |
| :straight t | |
| :config | |
| (minions-mode 1)) | |
| (use-package dirvish | |
| :straight t | |
| :init | |
| (dirvish-override-dired-mode)) | |
| (put 'dired-find-alternate-file 'disabled nil) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment