扩展 go-translate 渲染器支持 Claude Typing 输入状态

AI需求

描述需求,投喂给 AI 给出建议,获取灵感,例如:

1
2
3
4
5
你是精通elisp语法,了解emacs的常规用法和习惯,请帮我实现下面的功能:

这是数组A:(list "你好,Typing" "你好,世界!Typing" "你好,世界!生活很美好,Typing" "你好,世界!生活很美好,要面对现实Typing")
写一个elisp函数:在当前buffer的光标位置,依次将数组A中的内容全部插入到光标的位置,要求每次插入的内容不能和已插入个的内容内容重复,次序要保持连贯。
插入的预期效果:"你好,世界!世界!生活很美好,要面对现实"。

Claude 灵感

这个函数会在当前光标的位置插入所有内容,不会出现重复。同时,如果已经插入了部分内容,新的内容会接在已有内容的后面。这里是实现该功能的Emacs Lisp代码:

基于 helm-org-ql 自定义 helm 检索 prompt.org 库

helm 功能

Helm是一个Emacs的框架,用于创建符合人体工程学的交互式工具。它有以下主要优点:

  1. 简单且一致的交互方式

    使用相同的界面和按键绑定为许多功能提供接口,这样用户只需要学习一次就可以应用到所有 Helm 工具上。这大大降低了学习成本,让 Emacs 的各种功能更易于掌握。

翻译 org-clock-budget 时间管理插件的用法

Budget your time with org-mode!

Usage

Adding budgets

您可以通过自定义 org-clock-budget-intervals 来指定要使用的间隔。

目前四个间隔是内置的,week,month,季度(3个月从1月1日开始的时间段)和年份。要在任务上添加预算,请添加一个属性( C-c C-x p ): BUDGET_WEEK, BUDGET_MONTHBUDGET_QUARTER, BUDGET_YEAR

介绍org-ql函数和宏的用法

Agenda-like views

Function: org-ql-block

要用作自定义 agenda 议程块,请键入 org-agenda-custom-commands 。例如,您可以像这样定义一个自定义系列命令,它将在单个缓冲区中列出 Tag 为 emacs ,所有优先级 A 项,其中 todo 状态为 SOMEDAY ,后面跟着标准 agenda 议程视图:

介绍 org-ql 常用命令

org-ql-find

使用 emacs 的内置补全工具和一个 org-ql 查询选择的标题实现跳转:

  • org-ql-find 在当前缓冲区中搜索。
  • org-ql-find-in-agenda searches in (org-agenda-files).
  • org-ql-find-in-org-directory searches in org-directory.
Org mode logo

org-ql-refile

此命令将当前的 org 条目重新归档到通过使用 org-ql 补全进行搜索所选择的条目中。它搜索 org-refile-targets 中列出的文件以及当前缓冲区。

扩展 org-capture 基于 TAGS 功能动态设置 prompt

在 capture 中支持 tag 的选择,tag 可以分类,扩展AI分类,以 prompt 的 title 作为 tag 值。在调用 gpt 之前,只需要设定 tag 就行了。

例如:想使用 写作助理的角色,完成一下操作

  1. 现在 tag 分组中添加角色名称
  2. 再添加 tag 到 headline 上
  3. 在请求之前,使用 tag 值匹配 prompt 模块的名称,然后就可以为 gptel 设置 system 了。

难点: 如何通过 tag 获取 prompt,有几种方案

org-element.el API 联调文档

主要目的是使用 API 解析字符串中的 org-mode 数据。获取对应的节点内容等。

测试方法:使用 ob-babel 功能,支持共享数据和环境变量,可以传值等特点。

初始化数据源

1
2
3
4
(setq org-string "* Hello world\n:PROPERTIES:\n:OWNER: Dav\n:ID: 123\n:END:\n\nThis is the body of first-level headline.\n\n** Subheadline\n\nTest text.")
(with-current-buffer (get-buffer-create "*org-string*")
        (insert org-string)
      )

APi 测试用例

获取所有属性名

1
2
3
4
5
6
(with-current-buffer "*org-string*"
  (org-mode)
  (let ((x (org-buffer-property-keys)))
    (with-output-to-temp-buffer "*xah temp out*"
      (print x)))
  )
IDOWNER

获取当前 headline

1
2
3
4
5
6
7
8

(with-current-buffer "*org-string*"
  (org-mode)
  ;; 提取当前标题的组成部分。
  (let ((x (org-heading-components)))
    (with-output-to-temp-buffer "*xah temp out*"
      (print x)))
  )
22nilnilSubheadlinenil

获取所有 headline

1
2
3
4
5
6
7
8
9
(with-current-buffer "*org-string*"
  (org-mode)
  (let (($headings nil))
    (org-map-entries
     (lambda ()
       (push (org-heading-components) $headings)))
    (with-output-to-temp-buffer "*xah temp out*"
      (print $headings)))
  )
22nilnilSubheadlinenil
11nilnilHello worldnil

org-element.el 库测试用例

org-data 的数据结构

(org-data nil <e1> <e2> <e3> … )

siri 对话 Claude AI,低延迟畅聊

在体验 AI 对工作和生活越来越大,疯狂的探索更多的技巧和使用场景,改善生活习惯。很自然,就瞄上了 Siri 本该强大的小助手,是时候通过 AI 来提升对话体验了。