【初化的一些配置】

This commit is contained in:
邵静 2024-06-25 15:46:58 +08:00
commit 9674d52104
9 changed files with 223 additions and 0 deletions

17
.gitignore vendored Normal file
View File

@ -0,0 +1,17 @@
auto-save-list/*
elpa/*
.cache/*
transient/
ido.last
history
recentf
places
custom.el
projectile-bookmarks.eld
.lsp-session-v1
projects
org-persist
org-roam.db
server/
*~
eln-cache/

13
init.el Normal file
View File

@ -0,0 +1,13 @@
;;; init.el -- 初始化配置
;;; Commentary:
;;; Code:
(add-to-list 'load-path "~/.emacs.d/lisp")
(require 'init-package) ; 配置包管理器
(require 'init-custom) ; 默认配置
(require 'init-autocomplete) ; 自动补伤全配置
(require 'init-hydra) ; hydra配置自定的快捷键
(require 'init-errors) ; 错误/警告提示引擎配置
(require 'init-projectile) ; 项目管理配置
(require 'init-magit) ; git客户端
;;; init.el ends here

24
lisp/init-autocomplete.el Normal file
View File

@ -0,0 +1,24 @@
;;; package -- init-autocomplete
;;; Commentary:
;;; Code:
;; 文本提示的配置 - company
(use-package company
:ensure t
:config
(add-hook 'after-init-hook 'global-company-mode)
(setq company-idle-delay .2 ; 延时多少秒后弹出
company-minimum-prefix-length 1 ; 至少几个字符后开始补全
company-show-quick-access t ; 选项快速访问
company-tooltip-limit 20 ; 菜单里的可选数量
company-tooltip-align-annotations t ; 注释贴右侧对齐
))
;; 命令提示的配置M-x后命令的提示 - ivy
(use-package ivy
:ensure t
:config
(ivy-mode 1)
(setq ivy-format-function #'ivy-format-function-arrow)
(define-key ivy-minibuffer-map (kbd "RET") #'ivy-alt-done)
)
(provide 'init-autocomplete)
;;; init-autocomplete.el ends here

43
lisp/init-custom.el Normal file
View File

@ -0,0 +1,43 @@
;;; package -- init-custome
;;; Commentary:
;;; Code:
(tool-bar-mode -1)
;; 隐藏菜单栏
(menu-bar-mode -1)
;; 显示行号
(global-display-line-numbers-mode 1)
;; 关闭滚动条
(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
;; 关闭光标到边缘区域后自动翻页
(setq-default scroll-step 1 scroll-margin 0 scroll-conservatively 10000)
;; 括号自动匹配
(electric-pair-mode 1)
;; 关闭自动保存,自动备份文件
(auto-save-mode nil)
(setq make-backup-files nil)
;; 字体
(cond
;; 如果是windows系统, 设置Consolas字体
((eq system-type 'windows-nt)
(set-face-attribute 'default nil :font "Consolas-11"))
;; 如果是Linux系统
((eq system-type 'gnu/linux)
(set-face-attribute 'default nil :font "Ubuntu Mono-12"))
)
;; 配置编码
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8)
;; 配置whitespace
(global-whitespace-mode t)
;; 配置yes和no的别名
(defalias 'yes-or-no-p 'y-or-n-p)
;; 选中的内容可以C-d删除
(delete-selection-mode 1)
;; 选中的内容可以粘贴覆盖
(cua-selection-mode 1)
;; 关闭启动文档
(setq inhibit-splash-screen 1)
;; 重新映射mark的快捷键
(global-set-key (kbd "C-,") 'set-mark-command)
(provide 'init-custom)
;;; init-custom.el ends here

11
lisp/init-errors.el Normal file
View File

@ -0,0 +1,11 @@
;;; init-errors -- 错误/警告提示配置
;;; Commentary:
;;; Code:
(use-package flycheck
:init
(setq flycheck-emacs-lisp-load-path 'inherit)
:config
(global-flycheck-mode)
)
(provide 'init-errors)
;;; init-errors.el ends here

65
lisp/init-hydra.el Normal file
View File

@ -0,0 +1,65 @@
;;; init-hydra -- 配置自定的快捷键 -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
;; 安装(如果未装的话)
(use-package hydra
:ensure t)
;; 定义hydra入口我的常用快捷键都放在这
(defhydra hydra-main (:color blue :hint nil)
"
^命令^
^^^^^^^^^^------------------------------
_f_: 文件目录操作 _p_: Projectile项目管理
"
("f" hydra-file-dir-operations/body "文件目录操作")
("p" hydra-projectile-operations/body "Projectile项目管理")
)
;; 定义一个用于文件操作的 hydra
(defhydra hydra-file-dir-operations (:color blue :hint nil)
"
^文件操作^ ^目录操作^
^^^^^^^^^^------------------------------
_f_: 打开文件 _d_: 打开目录
_s_: 保存文件 _m_: 创建目录
_d_: 删除文件 _k_: 删除目录
_c_: 关闭文件 _j_: dired 模式
_r_: 重命名文件 _n_: 选择目录
"
;; 文件操作
("f" find-file "打开文件")
("s" save-buffer "保存文件")
("c" kill-buffer "关闭文件")
("x" delete-file "删除文件")
("r" rename-file "重命名文件")
;; 目录操作
("d" dired "打开目录")
("m" make-directory "创建目录")
("k" (lambda () (interactive) (dired-delete-file (dired-get-file-for-visit))) "删除目录")
("j" dired-jump "dired 模式")
("n" dired "选择目录")
)
;; 定义一个用于Projectile项目管理的 hydra
(defhydra hydra-projectile-operations (:color blue :hint nil)
"
^Projectile项目管理^
^^^^^^^^^^^^^^^^^^^--------------------
_p_: 切换项目 _f_: 查找文件
_d_: 查找目录 _s_: 正则查找
_g_: 全局搜索 _b_: 切换缓冲区
_r_: 重命名项目
"
("p" projectile-switch-project "切换项目")
("f" projectile-find-file "查找文件")
("d" projectile-find-dir "查找目录")
("s" projectile-grep "正则查找")
("g" projectile-grep "全局搜索")
("b" projectile-switch-to-buffer "切换缓冲区")
("r" projectile-replace "重命名项目")
)
;; 绑定一个快捷键来激活这个 HydraAlt + 空格键
(global-set-key (kbd "M-s") 'hydra-main/body)
(provide 'init-hydra)
;;; init-hydra.el ends here

6
lisp/init-magit.el Normal file
View File

@ -0,0 +1,6 @@
;;; init-magit -- git客户端magit配置
;;; Commentary:
;;; Code:
(use-package magit)
(provide 'init-magit)
;;; init-magit.el ends here

31
lisp/init-package.el Normal file
View File

@ -0,0 +1,31 @@
;;; init-package -- package管理配置
;;; Commentary: 通过use-package管理软件
;;; Code:
;; 激活配置
(package-initialize)
;; 配置镜像
(setq package-archives '(("melpa" . "http://melpa.org/packages/")
("melpa-stable" . "http://stable.melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")
("gnu". "https://elpa.gnu.org/packages/")
))
;; 如果没有装use-package
(unless (package-installed-p 'use-package)
;; 更新本地缓存
(package-refresh-contents)
;; 安装它
(package-install 'use-package)
)
(require 'use-package)
;; 让use-package永远按需安装软件包
(setq use-package-always-ensure t)
(use-package better-defaults)
(provide 'init-package)
;;; init-package.el ends here

13
lisp/init-projectile.el Normal file
View File

@ -0,0 +1,13 @@
;;; init-projectile -- 项目管理的配置
;;; Commentary:
;;; Code:
;; 安装(如未安装)
(use-package projectile
:ensure t
:config
(setq projectile-cache-file (expand-file-name ".cache/projectile.cache" user-emacs-directory))
(projectile-mode 1))
(provide 'init-projectile)
;;; init-projectile.el ends here