Last active
September 30, 2024 01:27
-
-
Save zilongshanren/78d8465be5040ea08c5247d093aa5267 to your computer and use it in GitHub Desktop.
极简emacs配置
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 inhibit-splash-screen t) | |
(setq-default cursor-type 'bar) | |
(setq initial-frame-alist (quote ((fullscreen . maximized)))) | |
(setq package-check-signature nil) | |
(require 'package) | |
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) | |
(package-initialize) | |
;;防止反复调用 package-refresh-contents 会影响加载速度 | |
(when (not package-archive-contents) | |
(package-refresh-contents)) | |
;; 关闭文件滑动控件 | |
(scroll-bar-mode -1) | |
(global-display-line-numbers-mode t) | |
;; 更改光标的样式(不能生效,解决方案见第二集) | |
(setq cursor-type 'bar) | |
;; 快速打开配置文件 | |
(defun open-init-file() | |
(interactive) | |
(find-file "~/.emacs.d/init.el")) | |
;; 这一行代码,将函数 open-init-file 绑定到 <f2> 键上 | |
(global-set-key (kbd "<f2>") 'open-init-file) | |
(use-package vertico | |
:ensure t) | |
(vertico-mode t) | |
(use-package orderless | |
:ensure t) | |
(setq completion-styles '(orderless)) | |
(use-package marginalia | |
:ensure t) | |
(marginalia-mode t) | |
(use-package embark | |
:ensure t) | |
(global-set-key (kbd "C-;") 'embark-act) | |
(setq prefix-help-command 'embark-prefix-help-command) | |
(use-package consult | |
:ensure t | |
;; Replace bindings. Lazily loaded by `use-package'. | |
:bind (;; C-c bindings in `mode-specific-map' | |
("C-c M-x" . consult-mode-command) | |
("C-c h" . consult-history) | |
("C-c k" . consult-kmacro) | |
("C-c m" . consult-man) | |
("C-c i" . consult-info) | |
([remap Info-search] . consult-info) | |
;; C-x bindings in `ctl-x-map' | |
("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command | |
("C-x b" . consult-buffer) ;; orig. switch-to-buffer | |
("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window | |
("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame | |
("C-x t b" . consult-buffer-other-tab) ;; orig. switch-to-buffer-other-tab | |
("C-x r b" . consult-bookmark) ;; orig. bookmark-jump | |
("C-x p b" . consult-project-buffer) ;; orig. project-switch-to-buffer | |
;; Custom M-# bindings for fast register access | |
("M-#" . consult-register-load) | |
("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated) | |
("C-M-#" . consult-register) | |
;; Other custom bindings | |
("M-y" . consult-yank-pop) ;; orig. yank-pop | |
;; M-g bindings in `goto-map' | |
("M-g e" . consult-compile-error) | |
("M-g f" . consult-flymake) ;; Alternative: consult-flycheck | |
("M-g g" . consult-goto-line) ;; orig. goto-line | |
("M-g M-g" . consult-goto-line) ;; orig. goto-line | |
("M-g o" . consult-outline) ;; Alternative: consult-org-heading | |
("M-g m" . consult-mark) | |
("M-g k" . consult-global-mark) | |
("M-g i" . consult-imenu) | |
("M-g I" . consult-imenu-multi) | |
;; M-s bindings in `search-map' | |
("M-s d" . consult-find) ;; Alternative: consult-fd | |
("M-s c" . consult-locate) | |
("M-s g" . consult-grep) | |
("M-s G" . consult-git-grep) | |
("M-s r" . consult-ripgrep) | |
("M-s l" . consult-line) | |
("M-s L" . consult-line-multi) | |
("M-s k" . consult-keep-lines) | |
("M-s u" . consult-focus-lines) | |
;; Isearch integration | |
("M-s e" . consult-isearch-history) | |
:map isearch-mode-map | |
("M-e" . consult-isearch-history) ;; orig. isearch-edit-string | |
("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string | |
("M-s l" . consult-line) ;; needed by consult-line to detect isearch | |
("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch | |
;; Minibuffer history | |
:map minibuffer-local-map | |
("M-s" . consult-history) ;; orig. next-matching-history-element | |
("M-r" . consult-history)) ;; orig. previous-matching-history-element | |
;; Enable automatic preview at point in the *Completions* buffer. This is | |
;; relevant when you use the default completion UI. | |
:hook (completion-list-mode . consult-preview-at-point-mode) | |
;; The :init configuration is always executed (Not lazy) | |
:init | |
;; Optionally configure the register formatting. This improves the register | |
;; preview for `consult-register', `consult-register-load', | |
;; `consult-register-store' and the Emacs built-ins. | |
(setq register-preview-delay 0.5 | |
register-preview-function #'consult-register-format) | |
;; Optionally tweak the register preview window. | |
;; This adds thin lines, sorting and hides the mode line of the window. | |
(advice-add #'register-preview :override #'consult-register-window) | |
;; Use Consult to select xref locations with preview | |
(setq xref-show-xrefs-function #'consult-xref | |
xref-show-definitions-function #'consult-xref) | |
;; Configure other variables and modes in the :config section, | |
;; after lazily loading the package. | |
:config | |
;; Optionally configure preview. The default value | |
;; is 'any, such that any key triggers the preview. | |
;; (setq consult-preview-key 'any) | |
;; (setq consult-preview-key "M-.") | |
;; (setq consult-preview-key '("S-<down>" "S-<up>")) | |
;; For some commands and buffer sources it is useful to configure the | |
;; :preview-key on a per-command basis using the `consult-customize' macro. | |
(consult-customize | |
consult-theme :preview-key '(:debounce 0.2 any) | |
consult-ripgrep consult-git-grep consult-grep | |
consult-bookmark consult-recent-file consult-xref | |
consult--source-bookmark consult--source-file-register | |
consult--source-recent-file consult--source-project-recent-file | |
;; :preview-key "M-." | |
:preview-key '(:debounce 0.4 any)) | |
;; Optionally configure the narrowing key. | |
;; Both < and C-+ work reasonably well. | |
(setq consult-narrow-key "<") ;; "C-+" | |
;; Optionally make narrowing help available in the minibuffer. | |
;; You may want to use `embark-prefix-help-command' or which-key instead. | |
;; (keymap-set consult-narrow-map (concat consult-narrow-key " ?") #'consult-narrow-help) | |
) | |
(use-package embark-consult | |
:ensure t) | |
(use-package wgrep | |
:ensure t) | |
(setq wgrep-auto-save-buffer t) | |
(eval-after-load | |
'consult | |
'(eval-after-load | |
'embark | |
'(progn | |
(require 'embark-consult) | |
(add-hook | |
'embark-collect-mode-hook | |
#'consult-preview-at-point-mode)))) | |
(define-key minibuffer-local-map (kbd "C-c C-e") 'embark-export) | |
;;使用ripgrep来进行搜索 | |
;;consult-ripgrep | |
;;everyting | |
;;consult-locate | |
;; 配置搜索中文 | |
(progn | |
(setq consult-locate-args (encode-coding-string "es.exe -i -p -r" 'gbk)) | |
(add-to-list 'process-coding-system-alist '("es" gbk . gbk)) | |
) | |
(eval-after-load 'consult | |
(progn | |
(setq | |
consult-narrow-key "<" | |
consult-line-numbers-widen t | |
consult-async-min-input 2 | |
consult-async-refresh-delay 0.15 | |
consult-async-input-throttle 0.2 | |
consult-async-input-debounce 0.1) | |
)) | |
(custom-set-variables | |
;; custom-set-variables was added by Custom. | |
;; If you edit it by hand, you could mess it up, so be careful. | |
;; Your init file should contain only one such instance. | |
;; If there is more than one, they won't work right. | |
'(package-selected-packages '(consult embark marginalia orderless vertico))) | |
(custom-set-faces | |
;; custom-set-faces was added by Custom. | |
;; If you edit it by hand, you could mess it up, so be careful. | |
;; Your init file should contain only one such instance. | |
;; If there is more than one, they won't work right. | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment