请用 get_emacs_vars 修改一下补丁, 实例代码在 emacs-application-framework/eaf.py at 442a2b39f50999d6b2a9297d709758db52e920c6 · emacs-eaf/emacs-application-framework · GitHub
这样可以一次IPC通讯获取多个变量值, 提升 Elisp 和 Python 的交互性能。
请用 get_emacs_vars 修改一下补丁, 实例代码在 emacs-application-framework/eaf.py at 442a2b39f50999d6b2a9297d709758db52e920c6 · emacs-eaf/emacs-application-framework · GitHub
这样可以一次IPC通讯获取多个变量值, 提升 Elisp 和 Python 的交互性能。
网页版现在太卡了,这个太及时了,非常好用
做了个spacemacs的layer,有需要的自取
提一个需求,能不能支持临时buffer,可以直接问,不用建.chat文件,比如类似于 org-capture 那种
mind-wave-chat-mode
(define-derived-mode chatgpt-mode comint-mode "chatgpt"
(let ((chatgpt-prompt-regexp "\\([0-9]+>\\)"))
(setq comint-prompt-regexp chatgpt-prompt-regexp)
(set (make-local-variable 'paragraph-separate) "\\'")
(set (make-local-variable 'paragraph-start) chatgpt-prompt-regexp)
(setq comint-use-prompt-regexp t)
(setq comint-process-echoes t)))
(defun run-chatgpt ()
(interactive)
(let* ((chatgpt-program "chatgpt")
(buffer (get-buffer-create "*chatgpt*"))
(proc-alive (comint-check-proc buffer))
(process (get-buffer-process buffer)))
(unless proc-alive
(with-current-buffer buffer
(apply #'make-comint-in-buffer "chatgpt" buffer
chatgpt-program nil nil)
(chatgpt-mode)))
(when buffer
(pop-to-buffer buffer))))
用get-buffer-crete 建的 buffer里收不到回复,不清楚是什么情况
糊了一个。
直接运行时创建新chat,如果前置C-u,那就从历史chat中找。
历史文件放在配置中的 “mind-wave/” 目录下。
(defun z/mind-wave-find-chat (&optional arg)
"Creat new chat. with ARG, find previous chat."
(interactive "P")
(find-file
(if arg
(completing-read
"Choose chat: "
(cl-remove-if
(lambda (x) (member x '("." "..")))
(directory-files (locate-user-emacs-file "mind-wave") t "\\.chat\\'")))
(concat user-emacs-directory "mind-wave/" (format-time-string "%FT%T") ".chat")))
(mind-wave-chat-mode))
哈哈哈, 是这样的, ChatGPT 回答回答的就忘记把代码换行了。
你这时候告诉他, “请把上面的回复用 Markdown 来渲染”, 它就会调整过来了。
ChatGPT 那么强, 不知道为啥这个细节一直不行, 逼死强迫症呀。
好吧,是否可以人工手动换行? 但是我试了一下不行,不知道什么原因.
代码多了,你不知道那些是正确的换行呀。
有可能是我的锅, 因为我现在的方式是按照 \n 来分割提取内容的, 但是这样会导致换行符去掉后, ChatGPT 模仿我的问题, 也回复没有换行符的代码给我。
新的补丁在分析内容的时候, 保留了换行符。
你看看新补丁解决了你的问题没?
同时使用mind-wave
和auto-save
插件,聊天模式下的mind-wave
会遇到下图问题,阻塞问答。
OS为Windows10,请问这个问题是platform-specific还是可以通过修改auto-save
插件的配置解决呢?
你的auto-save是怎么安装的?
这个是 mind-wave 自动重命名选项 mind-wave-auto-change-title
应该是有两个buffer导致创建新文件, 你可以检查你的自动保存设置或者关闭 mind-wave-auto-change-title 选项。
(add-to-list 'load-path "~/.emacs.d/mind-wave/")
(require 'mind-wave)
(setq mind-wave-auto-change-title nil)
关掉了 mind-wave-auto-change-title
就好了。谢谢回复!
需要代理才能访问API的情况,在mind_wave.py中加入openai.proxy=“you proxy”
我想加段代码去从emacs中显式设置代理,这里是该重新定义一个proxy的选项,比如在mind-wave.el中定义mind-wave-api-proxy,还是直接去解析url-proxy-services比较合适?
我建议你用 proxy-ns , 基于Linux Namespace原理开发, 这样只要一个进程是用 proxy-ns 启动的, 不管是否静态编译, 这个进程的所有子进程都自动代理。
我至从用了 proxy-ns , 我再也不给各种插件单独设置代理了, Emacs插件太多太麻烦了。