Skip to content

Instantly share code, notes, and snippets.

@mumu-lhl
Created December 31, 2025 14:52
Show Gist options
  • Select an option

  • Save mumu-lhl/60c97be66e80b7f7ca6d811b2679041a to your computer and use it in GitHub Desktop.

Select an option

Save mumu-lhl/60c97be66e80b7f7ca6d811b2679041a to your computer and use it in GitHub Desktop.
A simple emacs configure
(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