no-littering:终极指南,让你的~/.config/emacs目录保持整洁如新
【免费下载链接】no-litteringHelp keeping ~/.config/emacs clean项目地址: https://gitcode.com/gh_mirrors/no/no-littering
如果你是一位Emacs用户,你可能已经注意到随着时间的推移,你的~/.config/emacs目录会变得越来越混乱。各种插件和内置功能会在这个目录下创建大量的配置文件和数据文件,使得管理和维护变得困难。no-littering就是为解决这个问题而生的工具,它能帮助你保持Emacs配置目录的整洁有序,让你的Emacs使用体验更加愉悦。
🧹 什么是no-littering?
no-littering是一个Emacs插件,它的主要目标是帮助用户保持~/.config/emacs目录的整洁。它通过修改各种Emacs包的路径变量,将配置文件和数据文件分别集中存放在两个目录中:
no-littering-etc-directory:默认位于~/.config/emacs/etc/,用于存放配置文件no-littering-var-directory:默认位于~/.config/emacs/var/,用于存放数据文件
这种方式类似于"路径主题",让所有Emacs包遵循统一的文件存放规范,避免配置文件散落在各个角落。
🚀 为什么需要使用no-littering?
Emacs生态系统非常丰富,但不同的包在文件存放位置上缺乏统一标准。有些包将文件直接放在user-emacs-directory下,有些放在子目录中,还有些甚至放在$HOME目录下。这导致:
- 配置目录混乱,难以管理
- 难以区分哪些文件属于哪个包
- 备份和迁移Emacs配置变得复杂
- 新用户难以理解Emacs的文件结构
no-littering通过统一文件存放规则,解决了这些问题,让你的Emacs配置更加专业和可维护。
💾 安装no-littering
快速安装步骤
你可以通过以下命令克隆no-littering仓库:
git clone https://gitcode.com/gh_mirrors/no/no-littering然后在你的Emacs配置文件中添加:
(require 'no-littering)自定义目录位置(可选)
如果你想自定义配置文件和数据文件的存放位置,可以在加载no-littering之前设置相关变量:
(eval-and-compile ; 确保编译时和运行时的值一致 (setq no-littering-etc-directory (expand-file-name "config/" user-emacs-directory)) (setq no-littering-var-directory (expand-file-name "data/" user-emacs-directory)) (require 'no-littering))⚙️ 配置建议
自动保存、备份和undo-tree文件
出于安全考虑,no-littering不会自动修改Emacs的备份和自动保存相关设置。如果你希望将这些文件也集中管理,可以调用专门的函数:
(no-littering-theme-backups)这个函数会将自动保存文件、备份文件和undo-tree历史文件统一存放在no-littering-var-directory下的相应子目录中。
锁文件设置
要将锁文件集中存放在一个目录,可以添加以下配置:
(let ((dir (no-littering-expand-var-file-name "lock-files/"))) (make-directory dir t) (setq lock-file-name-transforms `((".*" ,dir t))))最近文件设置
如果你使用recentf功能,可以将no-littering管理的目录排除在最近文件列表之外:
(require 'recentf) (add-to-list 'recentf-exclude (recentf-expand-file-name no-littering-var-directory)) (add-to-list 'recentf-exclude (recentf-expand-file-name no-littering-etc-directory))自定义设置保存位置
Emacs默认会将自定义设置保存在你的初始化文件中。如果你想将它们存放在单独的文件中,可以设置:
(setq custom-file (no-littering-expand-etc-file-name "custom.el"))Emacs 29原生编译缓存设置
如果你使用Emacs 29或更高版本,可以将原生编译缓存目录设置到no-littering管理的目录中:
(when (and (fboundp 'startup-redirect-eln-cache) (fboundp 'native-comp-available-p) (native-comp-available-p)) (startup-redirect-eln-cache (convert-standard-filename (expand-file-name "var/eln-cache/" user-emacs-directory))))🔄 迁移现有配置
如果你已经使用Emacs一段时间,想要迁移到no-littering,项目中提供了一个migrate.org文件,它提供了迁移指南和工具。迁移步骤大致如下:
- 保存当前路径变量的值
- 加载no-littering
- 生成迁移脚本
- 执行迁移脚本
- 移除旧的自定义设置
详细的迁移步骤和代码可以在migrate.org中找到。
📦 支持的包
no-littering支持大量的内置和第三方Emacs包,包括但不限于:
- 内置包:如
abbrev、bookmark、calc、desktop、erc、eshell等 - 第三方包:如
helm、company、projectile、org-roam、magit、lsp-mode等
完整的支持列表可以在no-littering.el文件中查看。如果你使用的包不在列表中,欢迎贡献代码来支持它!
🎯 总结
no-littering是一个简单而强大的工具,它通过统一Emacs包的文件存放规则,帮助你保持~/.config/emacs目录的整洁。使用no-littering,你可以:
- 让Emacs配置更加有序和专业
- 轻松找到和管理各个包的配置文件
- 简化Emacs配置的备份和迁移
- 减少因文件混乱导致的问题
如果你还在为Emacs配置目录的混乱而烦恼,不妨试试no-littering,体验一个整洁有序的Emacs工作环境!
📚 更多资源
- 项目源代码:no-littering.el
- 使用文档:README.org
- 迁移指南:migrate.org
【免费下载链接】no-litteringHelp keeping ~/.config/emacs clean项目地址: https://gitcode.com/gh_mirrors/no/no-littering
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考