mind-wave
mind-wave 是一款利用 ChatGPT API 开发的 Emacs AI 插件,能够深度集成于 Emacs,从而提高 Emacs 在各方面的工作效率。
mind-wave 的优势就是继承(但不依赖)EAF、lsp-bridge、blink-search 等插件的多线程能力, 我们可以通过 ChatGPT API 在后台跑非常多个 AI 线程, 都不会卡住 Emacs 当前的工作。
安装
- 注册 OpenAI
- 获取 OpenAI API Key, 并将 API Key 保存到
~/.emacs.d/mind-wave/chatgpt_api_key.txt
文件中(或设置环境变量 OPENAI_API_KEY) - 安装 Python 依赖:
pip3 install openai epc sexpdata six
- 使用
git clone
下载此仓库,并替换下面配置中的load-path
路径 - 将以下代码添加到您的配置文件
~/.emacs
中:
(add-to-list 'load-path "<path-to-mind-wave>")
(require 'mind-wave)
使用
对话模式
- 新建
test.chat
文件,将自动进入mind-wave-chat-mode
- 执行命令
mind-wave-chat-ask
(按下 Ctrl + j),输入问题,等待 ChatGPT 回答 - 执行命令
mind-wave-chat-continue
(按下 Ctrl + u), 继续回答 - 执行命令
mind-wave-chat-generate-title
(按下 Ctrl + i), 根据内容重新生成标题
如果您想更换话题,请新建一个新的 *.chat
文件,然后继续向 ChatGPT 提问即可。
多行输入
多行输入有两种方式:
- 执行命令
mind-wave-chat-ask-with-multiline
(按下 Ctrl + Shift + j),输入多行问题,等待 ChatGPT 回答 - 执行命令
mind-wave-chat-ask-insert-line
插入----- User ------
分隔符, 在 Buffer 继续输入多行内容, 最后执行mind-wave-chat-ask-send-buffer
文档模式
选中内容(请注意,不要选择太多,ChatGPT 的 API 有大小限制)
- 执行命令
mind-wave-translate-to-english
,ChatGPT 获得翻译后会自动替换选中区域的内容。 - 执行命令
mind-wave-proofreading-doc
,ChatGPT 会用润色后的文档自动替换选中区域的内容。
代码模式
光标移动到想要重构的函数
- 执行命令
mind-wave-refactory-code
, ChatGPT 会自动分屏, 在屏幕右边先后重构后的代码和重构建议 - 执行命令
mind-wave-comment-code
, ChatGPT 会自动分屏, 在屏幕右边显示带注释的代码 - 执行命令
mind-wave-explain-code
, ChatGPT 会自动分屏, 在屏幕右边显示代码的讲解
摘要模式
- 打开视频网站, 执行命令
mind-wave-summary-video
, ChatGPT 会自动获取视频字幕, 并分析视频概要 (需要安装youtube_transcript_api
) - 打开文本网站, 执行命令
mind-wave-summary-web
, ChatGPT 会自动获取网页中的核心内容, 并分析网页概要 (需要安装nodejs-readability-cli
)