加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
config.el 8.24 KB
一键复制 编辑 原始数据 按行查看 历史
zilongshanren 提交于 2022-06-04 17:55 . tweak emacs
;; -*- lexical-binding: t -*-
(add-to-list 'load-path "~/.emacs.d/lisp/")
(setq w32-apps-modifier 'super) ; 通过SharpKeys改成了 Application
(global-set-key (kbd "s-a") 'mark-whole-buffer) ;;对应Windows上面的Ctrl-a 全选 C-x C-e
(global-set-key (kbd "s-c") 'kill-ring-save) ;;对应Windows上面的Ctrl-c 复制
(global-set-key (kbd "s-s") 'save-buffer) ;; 对应Windows上面的Ctrl-s 保存
(global-set-key (kbd "s-v") 'yank) ;对应Windows上面的Ctrl-v 粘贴
(global-set-key (kbd "s-z") 'undo) ;对应Windows上面的Ctrol-z 撤销
(global-set-key (kbd "s-x") 'kill-region)
(global-linum-mode 1)
(setq inhibit-startup-screen t)
(server-mode 1)
(+ 2 2 2 2)
(+ 2 (* 3 4))
(setq tab-always-indent 'complete)
;;(icomplete-mode t)
(setq name "zilong")
(message name)
(defun func()
(interactive)
(message "hello22, %s" name))
(setq name "shanren")
(func)
(global-set-key (kbd "<f1>") 'func)
;;lispy s-expression
(electric-pair-mode t)
(toggle-frame-maximized)
;mode-line
;;C-h m
(tool-bar-mode -1)
(scroll-bar-mode -1)
(setq-default cursor-type '(bar . 5))
;;REPL read eval print loop
;; Happy Hacking
;; 快速打开配置文件
(defun open-init-file()
(interactive)
(find-file "~/.emacs.d/init.el"))
;; 这一行代码,将函数 open-init-file 绑定到 <f2> 键上
(global-set-key (kbd "<f2>") 'open-init-file)
(global-company-mode 1)
(setq company-minimum-prefix-length 1)
(setq company-idle-delay 0)
(define-key company-active-map (kbd "C-n") 'company-select-next)
(define-key company-active-map (kbd "C-p") 'company-select-previous)
(global-set-key (kbd "C-h C-f") 'find-function)
(global-set-key (kbd "C-h C-v") 'find-variable)
(global-set-key (kbd "C-h C-k") 'find-function-on-key)
;; 更改显示字体大小 16pt
;; http://stackoverflow.com/questions/294664/how-to-set-the-font-size-in-emacs
(set-face-attribute 'default nil :height 160)
;;让鼠标滚动更好用
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil)))
(setq mouse-wheel-progressive-speed nil)
(require 'init-packages)
;;modeline上显示我的所有的按键和执行的命令
(use-package keycast :ensure t)
(keycast-mode t)
(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)
;;swiper
(global-set-key (kbd "C-s") 'consult-line)
(global-set-key (kbd "M-s i") 'consult-imenu)
(show-paren-mode t)
(add-to-list 'load-path (expand-file-name "~/.emacs.d/awesome-tab"))
(require 'awesome-tab)
(awesome-tab-mode t)
(defun awesome-tab-buffer-groups ()
"`awesome-tab-buffer-groups' control buffers' group rules.
Group awesome-tab with mode if buffer is derived from `eshell-mode' `emacs-lisp-mode' `dired-mode' `org-mode' `magit-mode'.
All buffer name start with * will group to \"Emacs\".
Other buffer group by `awesome-tab-get-group-name' with project name."
(list
(cond
((or (string-equal "*" (substring (buffer-name) 0 1))
(memq major-mode '(magit-process-mode
magit-status-mode
magit-diff-mode
magit-log-mode
magit-file-mode
magit-blob-mode
magit-blame-mode)))
"Emacs")
((derived-mode-p 'eshell-mode)
"EShell")
((derived-mode-p 'dired-mode)
"Dired")
((memq major-mode '(org-mode org-agenda-mode diary-mode))
"OrgMode")
((derived-mode-p 'eaf-mode)
"EAF")
(t
(awesome-tab-get-group-name (current-buffer))))))
(setq make-backup-files nil)
(require 'recentf)
(recentf-mode 1)
(setq recentf-max-menu-item 10)
(global-set-key (kbd "C-x b") 'consult-buffer)
(delete-selection-mode t)
(progn
(defvar emax-root (concat (expand-file-name "~") "/emax"))
(defvar emax-bin (concat emax-root "/bin"))
(defvar emax-bin64 (concat emax-root "/bin64"))
(setq exec-path (cons emax-bin exec-path))
(setenv "PATH" (concat emax-bin ";" (getenv "PATH")))
(setq exec-path (cons emax-bin64 exec-path))
(setenv "PATH" (concat emax-bin64 ";" (getenv "PATH")))
(setq emacsd-bin (concat user-emacs-directory "bin"))
(setq exec-path (cons emacsd-bin exec-path))
(setenv "PATH" (concat emacsd-bin ";" (getenv "PATH")))
;;可选安装msys64
;;下载地址: http://repo.msys2.org/mingw/sources/
(setenv "PATH" (concat "C:\\msys64\\usr\\bin;C:\\msys64\\mingw64\\bin;" (getenv "PATH")))
;; (dolist (dir '("~/emax/" "~/emax/bin/" "~/emax/bin64/" "~/emax/lisp/" "~/emax/elpa/"))
;; (add-to-list 'load-path dir))
)
;; grep < ack < ag < ripgrep (rg)
;;hello2
(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))))
(defun embark-export-write ()
"Export the current vertico results to a writable buffer if possible.
Supports exporting consult-grep to wgrep, file to wdeired, and consult-location to occur-edit"
(interactive)
(require 'embark)
(require 'wgrep)
(pcase-let ((`(,type . ,candidates)
(run-hook-with-args-until-success 'embark-candidate-collectors)))
(pcase type
('consult-grep (let ((embark-after-export-hook #'wgrep-change-to-wgrep-mode))
(embark-export)))
('file (let ((embark-after-export-hook #'wdired-change-to-wdired-mode))
(embark-export)))
('consult-location (let ((embark-after-export-hook #'occur-edit-mode))
(embark-export)))
(x (user-error "embark category %S doesn't support writable export" x)))))
(define-key minibuffer-local-map (kbd "C-c C-e") 'embark-export-write)
;;ivy
;; Encoding
;; UTF-8 as the default coding system
(when (fboundp 'set-charset-priority)
(set-charset-priority 'unicode))
(set-language-environment 'chinese-gbk)
(prefer-coding-system 'utf-8-auto)
(add-to-list 'process-coding-system-alist '("es" gbk . gbk))
(setq consult-locate-args (encode-coding-string "es.exe -i -p -r" 'gbk))
(defun consult-directory-externally (file)
"Open FILE externally using the default application of the system."
(interactive "fOpen externally: ")
(if (and (eq system-type 'windows-nt)
(fboundp 'w32-shell-execute))
(shell-command-to-string (encode-coding-string (replace-regexp-in-string "/" "\\\\"
(format "explorer.exe %s" (file-name-directory (expand-file-name file)))) 'gbk))
(call-process (pcase system-type
('darwin "open")
('cygwin "cygstart")
(_ "xdg-open"))
nil 0 nil
(file-name-directory (expand-file-name file)))))
(require 'embark)
(define-key embark-file-map (kbd "E") #'consult-directory-externally)
;;打开当前文件的目录
(defun my-open-current-directory ()
(interactive)
(consult-directory-externally default-directory))
(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)
))
(package-install 'pyim)
(defun eh-orderless-regexp (orig_func component)
(let ((result (funcall orig_func component)))
(pyim-cregexp-build result)))
(defun toggle-chinese-search ()
(interactive)
(if (not (advice-member-p #'eh-orderless-regexp 'orderless-regexp))
(advice-add 'orderless-regexp :around #'eh-orderless-regexp)
(advice-remove 'orderless-regexp #'eh-orderless-regexp)))
(defun disable-py-search (&optional args)
(if (advice-member-p #'eh-orderless-regexp 'orderless-regexp)
(advice-remove 'orderless-regexp #'eh-orderless-regexp)))
;; (advice-add 'exit-minibuffer :after #'disable-py-search)
(add-hook 'minibuffer-exit-hook 'disable-py-search)
(global-set-key (kbd "s-p") 'toggle-chinese-search)
(global-hl-line-mode 1)
;;(package-install 'monokai-theme)
;;(load-theme 'monokai 1)
(package-install 'doom-themes)
(load-theme 'doom-one 1)
(require 'org-tempo) ;开启easy template
(setq custom-file (expand-file-name "~/.emacs.d/custom.el"))
(load custom-file 'no-error 'no-message)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化