You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

163 lines
4.8 KiB
Plaintext

3 months ago
;; -*- lexical-binding: t -*-
(setq mac-option-modifier 'meta
mac-command-modifier 'super)
(global-set-key (kbd "s-a") 'mark-whole-buffer) ; 对应Windows上面的Ctrl-a 全选
(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) ; 对应Windows上面的Ctrol-x 剪切
(set-default-coding-systems 'utf-8) ; 设置编码
(global-hl-line-mode 1) ; 高亮当前光标所在行
;;(set-face-background 'hl-line "#e3f0fe") ; 高亮行的颜色
(setq default-frame-alist '((font . "霞鹜文楷等宽-20"))) ; 字体设置
(setq inhibit-startup-screen t) ; 关闭欢迎界面
(global-display-line-numbers-mode 1) ; 设置行号
(electric-pair-mode t) ; 自动补全括号, 引号等
(tool-bar-mode 0) ; 关闭界面菜单
(scroll-bar-mode 0) ; 关闭右侧滑动
(setq-default cursor-type '(bar . 4)) ; 设置光标样式
(setq make-backup-files nil) ; 不要设置~备份文件
(delete-selection-mode 1) ; 被选中的文字重新编辑允许直接覆盖
(global-auto-revert-mode 1) ; 外部如果更新了当前编辑的文本, em里面同步刷新
(fset 'yes-or-no-p 'y-or-n-p) ; 统一设置为 y/n
(auto-save-visited-mode 1) ; 设置自动保存
(setq auto-save-timeout 30) ; 设置自动保存时间间隔
;; (setq-default indent-tabs-mode nil) ; tab按键 使用空格代替制表符
(use-package package
:config
(setq package-archives '(("gnu" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))
(package-initialize)
)
;; 会在当前页显示一个buf进代码行提示
(glob)
;; 提示按下的按键和对应的函数
(use-package keycast
:ensure t
:defer t
:init
(keycast-mode-line-mode 1)
:config
)
;; 对C M 相关的命令搜索提示
(use-package vertico
:ensure t
:defer t
:init
(vertico-mode t)
:config
)
;; 模糊搜搜提示
(use-package orderless
:ensure t
:defer t
:init
(setq completion-styles '(orderless))
:config
)
;; 直接显示粗略的帮助文档/注释 用来配合vertico/orderless
(use-package marginalia
:ensure t
:defer t
:init
(marginalia-mode t)
:config
)
;; 增强帮助和搜索
(use-package embark-consult
:ensure t
:defer t
:bind((("C-;" . embark-act) ;; 绑定 C-;(分号)到 embark-act
("C-s" . consult-line) ;; 将 C-s 绑定到 consult-line用于文本搜索
("M-s i" . consult-imenu) ;; M-s i 跳转到 consult-imenu快速访问函数列表
("C-x b" . consult-buffer) ;; C-x b 打开 consult-buffer带历史记录的缓冲区列表
))
:init
(setq consult-async-min-input 2)
:config
(setq prefix-help-command 'embark-prefix-help-command)
)
;; 设置主题
(use-package catppuccin-theme
:ensure t
:defer t
:init
(setq catppuccin-flavor 'latte)
(load-theme 'catppuccin :no-confirm)
:config
)
(use-package which-key
:ensure t
:init
(which-key-mode)
:config
(setq which-key-idle-delay 0.2) ;; 设置延迟时间单位为秒默认是1.5秒
(setq which-key-separator "→") ;; 设置快捷键间的分隔符
(setq which-key-suppress-keymap-warning t) ;; 不显示警告信息
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 下面是内置的包不需要安装的
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 保存命令历史/搜索历史/标记历史等信息
(use-package savehist
:ensure nil
:hook (after-init . savehist-mode)
:init (setq enable-recursive-minibuffers t ; Allow commands in minibuffers
history-length 3000
savehist-additional-variables '(mark-ring
global-mark-ring
search-ring
regexp-search-ring
extended-command-history)
savehist-autosave-interval 30)
)
;; 每次离开缓冲区时记住光标的位置
(use-package saveplace
:ensure nil
:hook (after-init . save-place-mode)
)
;; eglot
(use-package eglot
:ensure nil
:init
:config
(add-to-list 'eglot-server-programs '((c++-mode c-mode) "clangd"))
;; (setq c-basic-offset 4)
:hook
(c-mode . eglot-ensure)
(c++-mode . eglot-ensure)
)
(setq a "~/.emacs.d/")
(defun say ())