我的Emacs配置

简介: 这是一份高度定制化的 Emacs 配置文件,采用 use-package 声明式管理。启用 Dracula 主题、Fira Code 字体,集成 Eglot(C/C++)、SLIME(Common Lisp)、xcscope(C 代码导航)及 clang-format 自动格式化,配备 Company 补全、括号高亮、行号显示等现代编辑功能,兼顾效率与美观。(239字)

(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.

'(column-number-mode t)

'(custom-enabled-themes '(dracula))

'(custom-safe-themes

  '("2d74de1cc32d00b20b347f2d0037b945a4158004f99877630afc034a674e3ab7" default))

'(package-selected-packages

  '(xcscope clang-format format-all eglot company-quickhelp-terminal company-quickhelp company-box use-package slime-company dracula-theme gnu-elpa-keyring-update slime smex))

'(show-paren-mode t))

(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.

'(default ((t (:family "Fira Code" :foundry "CTDB" :slant normal :weight normal :height 113 :width normal)))))

(require 'use-package)

(setq package-archives '(("gnu"    . "https://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")

                        ("nongnu" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/nongnu/")

                        ("melpa"  . "https://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))

(package-initialize) ;; You might already have this line



;;关闭启动页面

(setq inhibit-startup-message t)

(setq gnus-inhibit-startup-message t)

;;设置光标为|

(setq-default cursor-type 'bar)


;; 在窗口中显示行号

(global-linum-mode 1)        ;; 总是显示行号


;; 显示光标当前所在的行和列

(column-number-mode t)


;; 显示匹配的括号

(show-paren-mode t)

(setq show-paren-style 'parentheses)


;; 内置的智能自动补全括号

(electric-pair-mode t)


;; 鼠标自动避开光标

(mouse-avoidance-mode 'animate)

;; 将确定时输入的关键字 yes 和 no 替换为单字母 y 和 n

(fset 'yes-or-no-p 'y-or-n-p)


;; 不生成备份文件

(setq make-backup-files nil)

;;检查gnu签名,nil表示不检查

(setq package-check-signature 'allow-unsigned)


;;company

(use-package company

 :ensure t

 :hook (after-init . global-company-mode) ;; 全局启用 company-mode

 :config

 (setq company-idle-delay 0.2               ;; 补全弹出延迟

       company-minimum-prefix-length 2      ;; 触发补全的最小字符数

       company-tooltip-align-annotations t)) ;; 对齐注释


;;company-quickhelp:用来弹出说明文档

(use-package company-quickhelp

 :ensure t

 :hook (company-mode . company-quickhelp-mode)

 :config

 (setq company-quickhelp-delay 0.2))


;;clangd:C/C++代码补全

(require 'eglot)

(add-to-list 'eglot-server-programs '((c++-mode c-mode) "clangd"))

(add-hook 'c-mode-hook 'eglot-ensure)

(add-hook 'c++-mode-hook 'eglot-ensure)


;;cscope:C代码阅读

(require 'xcscope)

(cscope-setup)

;; 打开cscope时不更新,提高索引速度

(setq cscope-do-not-update-database t)

(setq cscope-option "-q")


;;sbcl

(setq inferior-lisp-program "sbcl")

;;slime-company

(slime-setup '(slime-fancy slime-company))

(use-package slime-company

 :after (slime company)

 :config (setq slime-company-completion 'fuzzy

               slime-company-after-completion 'slime-company-just-one-space))

(define-key company-active-map (kbd "\C-n") 'company-select-next)

(define-key company-active-map (kbd "\C-p") 'company-select-previous)

(define-key company-active-map (kbd "\C-d") 'company-show-doc-buffer)

(define-key company-active-map (kbd "M-.") 'company-show-location)


;;clang-format:C/C++脚本格式化

(use-package clang-format

 :ensure t  ;; 自动从 MELPA 安装

 :config

 (setq clang-format-executable (executable-find "clang-format")

       clang-format-style "file")  ;; "file" 表示使用 .clang-format 配置文件  

 ;; C脚本保存时自动格式化

(add-hook 'c-mode-common-hook

           (lambda ()

             (add-hook 'before-save-hook 'clang-format-buffer nil t)

             ;; 只在 C/C++ 模式中绑定 C-c f

             (local-set-key (kbd "C-c f") 'clang-format-buffer)))

 ;; lisp脚本保存时自动格式化

(add-hook 'lisp-mode-hook

         (lambda ()

           (add-hook 'before-save-hook

                    (lambda ()

                      (save-excursion

                        (pp-buffer)  ;; 这会自动美化整个缓冲区

                        (indent-region (point-min) (point-max))))

                    nil t)

           (local-set-key (kbd "C-c f")

                         (lambda ()

                           (interactive)

                           (save-excursion

                             (pp-buffer)

                             (indent-region (point-min) (point-max)))))))


;; ========== 全局缩进设置 ==========

;(setq lisp-indent-offset 2)        ;; Lisp 缩进 2 空格

(setq indent-tabs-mode nil)        ;; 统一使用空格

 )

目录
相关文章
|
存储 开发工具
Emacs+SBCL+Slime+CHLS(QuickLisp)
Emacs+Slime+CHLS(QuickLisp)
601 7
|
1天前
|
机器学习/深度学习 人工智能 程序员
阿里云出手DeepSeek拒绝服务器繁忙,程序员直呼:真香!
阿里云PAI支持零代码一键部署DeepSeek-V3/R1大模型,集成vLLM、BladeLLM加速,覆盖训练、部署、推理全流程。程序员直呼“真香”,轻松解决服务器繁忙问题,大幅降低AI应用门槛。(239字)
|
1天前
|
人工智能 安全 Linux
OpenClaw(Clawdbot)喂饭级指南:阿里云/本地部署、百炼API配置、核心Skill获取、实用技巧与避坑手册
OpenClaw(原Clawdbot,俗称“小龙虾”)作为2026年热门的开源AI Agent框架,其设计核心是“基础框架+第三方技能”的模块化架构——官方仅提供基础交互能力,真正的智能性需通过安装适配场景的Skills实现。多数用户部署后觉得“不够智能”,核心问题并非工具本身,而是未掌握技能拓展与使用技巧。
180 0
|
1天前
|
人工智能 自然语言处理 API
AI 变身股票分析师!OpenClaw阿里云/本地部署+集成股票 Skill,一键获取A股行情与潜力股推荐
OpenClaw(昵称“大龙虾”)的核心优势在于“既有AI的大脑,又有干活的双手”——它不仅能理解自然语言指令,更能通过Skill(技能)插件执行具体任务。对投资者而言,Stock-Analysis技能的出现彻底改变了传统股票分析模式:无需手动抓取数据、无需编写复杂脚本,仅需一句自然语言指令,就能让AI完成实时行情分析、板块筛选、潜力股推荐、早盘报告生成等专业操作,将原本需要数小时的分析工作压缩至分钟级。
287 0
|
1天前
|
人工智能 机器人 API
飞书/钉钉/QQ 机器人一站式搞定!OpenClaw Docker 部署教程
OpenClaw-Docker-CN-IM 是一款开箱即用的国产IM机器人网关Docker镜像,预装飞书、钉钉、QQ、企业微信等插件,支持环境变量灵活配置;集成OpenCode AI代码助手、Playwright自动化及中文TTS,助力开发者快速部署多平台AI机器人。
119 1
|
1天前
|
人工智能 安全 测试技术
Invicti Standard v26.2.0 for Windows - 企业级 Web 应用与 API 安全
Invicti Standard v26.2.0 for Windows - 企业级 Web 应用与 API 安全
22 0
Invicti Standard v26.2.0 for Windows - 企业级 Web 应用与 API 安全
|
1天前
|
缓存 人工智能 内存技术
一张表看懂阿里云千问 Tokens 计费:输入/输出/缓存命中价格差多少?
本文详解阿里云千问(Qwen)系列模型Token计费规则,涵盖Qwen3-Max/Plus/Flash等主流模型的输入、输出、Batch调用及上下文缓存价格差异,含免费额度说明与地域部署差异,助您精准预估AI调用成本。(239字)
|
1天前
|
Prometheus JavaScript Cloud Native
Fiber v3 适配器模式:17 种写法随便用,老代码“即插即用“
Fiber v3 适配器模式提供「万能转换插头」,无缝兼容 4 大类、17 种 Handler(原生 Fiber / net/http / fasthttp / Express 风格),让老代码零修改复用、新接口高效开发、团队平滑迁移,真正实现业务不中断、升级无压力!
|
1天前
|
弹性计算 固态存储 开发者
个人或学生群体,就选阿里云99元服务器,性价比之王!续费也是99元,速度领取!
阿里云99元/年服务器(2核2G+3M带宽+40G ESSD Entry盘),新老用户同享,续费不涨价!适合学生、个人开发者建站、测试等轻量场景,独享带宽、不限流量,性价比极高。(239字)
|
1天前
|
弹性计算 前端开发 安全
阿里云ECS服务器u1、c7、e实例、c8i实例有什么区别?性能有差异吗?
本文对比阿里云ECS四类实例:共享型经济e(入门低价)、独享型通用u1(高性价比,2核4G仅199元/年)、计算型c7(第三代Ice Lake处理器)和c8i(第八代Emerald/Sapphire Rapids,性能最强)。从CPU架构、网络PPS、IOPS到2/4/8核配置价格全面解析,助企业按需选型。(239字)

热门文章

最新文章