这是我的 Emacs 配置,我取名为Inkwell Emacs。我的配置主要用于笔记和编写代码( 主要是写笔记
), 不是一个全能的配置
。我尽量使得我的配置都是我真正需要用的,使之尽量美观,快速,以及简单。
这份配置是我在阅读Remacs的世界中的《面向产品经理的Emacs教程》后,结合子龙山人的教程以及诸多配置之后所编写的配置。部分配置,我也采用了ChatGPT的建议。我也是一个emacs新手(断断续续”玩”了差不多一年多),对于很多包也不会使用,但是我会持续更新配置。
- Arch Linux。
- i3-wm
要使用我的配置,请按照以下步骤进行安装:
- 克隆我的配置仓库到你的本地:
git clone [email protected]:Elonisme/.emacs.d.git ~/.emacs.d
- 启动 Emacs, 打开emacs-config.org后,M-x。
org-babel-tangle
重启emacs, 生成的文件会自动安装所需的包和依赖项。
- 重新启动 Emacs,以确保配置生效。
- 安装rime-ice
git clone [email protected]:iDvel/rime-ice.git ~/.emacs.d/var/rime
- 笔记方面:
笔记主要是使用Org mode来实现日常的笔记记录。抓取笔记主要是使用Org-roam包进行管理。使用 rime
进行中文输入,我使用 rime-ice
配置。截图显示在Org mode功能使用 org-download
包实现。在上面的基础上使用 ox-hugo
包发布到hugo服务器上以实现快速发布博客的功能。
- 代码方面
代码补全主要是使用 eglot
作为代码补全的工具。
如今基本上实现打开python文件,rust文件和latex文件后自动加载补全的功能。
但是加载有个前提是,你需要提前安装好可以用的lsp客户端。
如果你不知道什么是lsp客户端,你可以使着在网络上搜索一下相关的知识,并安装对应的服务。
- 注意方面
请注意,我的配置使用 org-mode 来生成 el 文件。因此,你需要使用 org-babel-tangle
命令来生成配置文件。具体使用方法可以参考 Remacs 的世界 中的教程。
如果你是 Emacs 新手,我推荐你阅读《面向产品经理的 Emacs 教程》 ,《21 天学会 Emacs》,《专业 Emacs 入门》,视频课程我推荐你观看Emacs高手修炼手册。哔哩哔哩 Up主 金色飞贼小米, 美味的樱桃菌等人视频也不错,我相信你会从中受益。
需要注意的是,我的配置中关于 use-package
的使用还不够熟练。下载配置后运行,会遇到不能下载的包,请麻烦手动使用 package-list-packages
下载。
Emacs 社区非常欢迎新人。毕竟在专有软件还在世界上横行霸道的情况下,我们Emacs hacker要团结一切可以团结的力量。
“总而言之,要团结一切可以团结的自由软件用户,这样就可以把专有软件派及其走狗缩小到最少,只剩下开源主义和少数亲开源主义的分子,即同开源主义有密切联系的程序员和博客作者。对我们来说,朋友越多越好,专有软件派越少越好”。摘自Watts Kishod(Уоттс Кишод)《我们要坚持自由软件主义一百年不动摇》
目前主要使用Python和Rust,所以只定制了这两门语言的补全。使用方法很简单,安装后台需要的依赖后,在emacs中启动python文件和rust文件即可。这部分代码我使用的是ChatGPT生成的配置。
在org mode中我配置了yasnippet。 我列举常用的yasnippet快捷键
语言 | 快捷键 |
---|---|
emacs lisp | <el Tab |
rust | <rt Tab |
python | <py Tab |
chat gpt | <ai Tab |
quote | <q Tab |
math | <math Tab |
mermaid | <mm Tab |
mind 思维导图 | <mind Tab |
gnuplot | <gp Tab |
plantuml | <uml Tab |
功能 | 快捷键 |
---|---|
重启emacs | C-c C-x r |
编辑emacs-config.org | F5 |
激活rime输入法 | C-\ |
启动番茄时钟 | C-c C-X ; |
org-roam find | C-c n f |
org-roam node insert | C-c n i |
org-roam-ui open | C-c n u |
快捷键 | 命令 | 含义 |
---|---|---|
C-x SPC | rectangle-mark-mode | 开始激活对一个矩形区域的标记 |
C-x r M-w | copy-rectangle-as-kill | 将标记的矩形区域拷贝 |
C-x r y | y ank-rectangle | 将拷贝的矩形区域粘贴 |
C-x r t | string-rec t angle | 将标记的矩形区域通过字符串来按行替换 |
C-x r k | k ill-rectangle | 将标记的矩形区域删除 |
C-x r c | c lear-rectangle | 将标记的矩形区域以空格清除 |
快捷键 | 功能 |
C-. | 激活avy |
Avy action 按键 | 含义 |
---|---|
k (thing), K (line) | 删除目的光标处的字符 |
w (thing), W (line) | 拷贝目的光标处的字符 |
y (thing), Y (line) | 将目的光标处的字符粘贴到当前的光标位置 |
t, T (line) | 将目的光标处的字符剪切到当前的光标位置 |
m | 选择目的光标处的字符 |
SPC | 选择从当前光标到目的光标处的区域 |
H | 展示目的光标处字符的定义 |
快捷键 | 功能 |
---|---|
C-` | 激活多行编辑 |
本配置遵循 GNU General Public License v3.0(GPLv3)许可证。你可以在 LICENSE 文件中查看许可证的完整文本。
如果你有任何问题或建议,请随时与我联系。
我的邮箱是 [email protected]。
祝你在 Emacs 中编写代码和笔记愉快!