主要观点:作者时常想获取源代码的视口并用于询问 LLM,常使用chatgpt-shell的chatgpt-shell-prompt-compose自动获取活动区域,为此探索了多种选择区域的方法,如expand-region等,还提到了avy、meow、easy-kill等包,作者对meow的模态编辑暂未准备好尝试,easy-kill的easy-mark有类似内置mark-sexp的功能,Avy的avy-kill-ring-save-region可用于目的但希望能保持区域活动,之后作者实现了在垂直方向扩展区域的函数bubble-expand和bubble-shrink,还实现了向上和向下移动区域的函数bubble-shift-up和bubble-shift-down,并通过bubble-expand-region提供行计数的 UX,将这些整合为一个名为bubble-mode的 minor mode,其键绑定包括C-c C-w进入模式、C-p扩展、C-n收缩、S-C-p向上移动、S-C-n向下移动、Numbers 1-0扩展 1 到 10 行、RET退出模式,目前该模式仍在实验中且位于作者的 Emacs 配置仓库,最后提到可在github上尝试该模式,同时呼吁赞助以支持工作并介绍了lmno.lol平台。
关键信息:介绍了多种 Emacs 相关工具和操作,包括用于选择区域的包和函数,以及创建bubble-mode的过程和键绑定。
重要细节:如各函数的具体实现代码、不同操作的效果展示图片等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。