TIL
Table of Contents
TIL = Today I learned
2024-11-06 给 Emacs 打 Patch#
来源: Telegram 群组 “Emacs_CN Lite 轻聊版” @Lucius_Chen
在 /opt/homebrew/Library/Taps/d12frosted/homebrew-emacs-plus/Formula/
下的 [email protected]
文件需要修改 Path
栏的 local_path
和 commit
。
如果需要打 patch,可以将 patch 文件放在:
/opt/homebrew/Library/Taps/d12frosted/homebrew-emacs-plus/patches/emacs-31
2024-11-05 Vim 命令 - Scroll & Move#
Scroll#
- 滚动一页:
C-f
/C-b
- 滚动半页:
C-d
/C-u
- 滚动一行:
C-e
/C-y
Navigation#
以词定位#
- 下一个单词的开头:
w
/W
(W
更加直接) - 当前单词的末尾:
e
/E
- 上一个单词的开头:
b
/B
以行定位#
- 去到行首:
0
- 去到行尾:
$
- 去到第一个非空字符:
^
- 去到最后一个非空字符:
g_
以屏定位#
- 去到当前屏幕中的第一行:
H
- 去到当前屏幕的中间一行:
M
- 去到当前屏幕的最后一行:
L
2024-10-27 解决一个神出鬼没的 Bug#
一句话说明问题#
升级 org-zettel-ref-mode
的数据库格式导致加载数据库的函数无法读取正确的数据库,结果引发内存错误链。报错信息仅显示 “let*: End of file during parsing”,未提供具体细节。
辛苦的过程#
- 起初以为是代码括号匹配问题,检查后无果。
- Emacs 群中请教后仍未找到问题。
- 尝试将所有
let*
改为let
,但问题依旧。
灵光一闪#
总结经验后怀疑是别处问题。直接运行导致报错的函数,终于获得详细的错误报告,从而顺利解决问题。
问题分析#
关键错误:
read
函数失败返回nil
。- 后续试图从
nil
中获取:entries
,导致问题传递。
调用链分析:
org-zettel-ref-db-load()
- 内部
let*
执行失败,触发错误。
2024-10-20 让大陆用户顺利访问部署在 Vercel 上的网站程序#
在域名服务商的 DNS 记录中使用:
cname-china.vercel-dns.com
2024-10-17 使用 Emacs 的 Register 方便工作#
观看视频 Emacs: Store anything with registers and bookmarks 后,更清楚 Register 的作用。
Register 的特点#
- 临时保存:
- 光标位置
- 窗口布局
- 文件(需自定义命令)
- 内容会随 Emacs 重启或被覆盖而丢失。
- 快速覆盖机制适合处理临时性任务。
Register 与 Bookmark 的结合#
Register 适合临时任务,Bookmark 可用于长期保存,高效结合使用能提升工作效率。
2024-10-16 不移动光标的情况下滚动行#
Emacs 内置了两个命令:
scroll-up-line
scroll-down-line
2024-10-07 软件工程的性能测试#
所有软件工程都应通过 Profiler 测试性能。Emacs 中可以通过以下命令实现:
- 启动性能测试:
M-x profiler-start
- 选择 CPU 消耗、内存消耗,或 CPU+内存消耗。