缘起 #
最近一直在学习emacs,想把博客工作流移到emacs中,实现在emacs中一条龙进行写作、发布等流程,奈何我使用的是两个图床,一个是自己笔记用的自托管的 lsky 图床,一个是用于给博客的 cloudflare R2 图床,于是想寻找一个 emacs 上的 picgo 插件,翻遍了全网找到了 epicgo 插件,这位大佬给了我灵感,于是跟 claude 死磕了两天,写出来了一个 picgo 插件。
现在的 AI 至少在代码方面能够起到的作用还是非常大的,可以让我这么一个对 elisp
零基础的人写出一个插件,并且没有 AI 的话,可以说完全无法入门 emacs
支持的功能 #
- 支持从剪切板上传至图床
- 支持从网络图片的url上传至图床
- 支持从本地地址上传至图床
- 支持批量上传文档中的图片
支持从网络图片的url 上传至图床,也就意味着可以将一个图床的图片切换至另一个图床,或者是对于收藏的笔记等存在外链图片的,统一上传到自己的图床,没有测试防盗链的图片能否正常上传;在windows 和 macos 上测试了都能够工作,linux 没有测试。
注意事项 #
使用时注意看看仓库的 Readme ,有一些注意事项需要提前知晓。
使用方法 #
仓库 #
zzz929625/emacs-picgo
PicGo integration for Emacs
Emacs Lisp
0
0
依赖与前置要求 #
需要picgo
或者piclist
的core版本,提前设置好图床等配置,能够在shell环境下通过cli使用picgo u
命令正常上传图片。
安装emacs-picgo #
手动安装 #
- 将
picgo.el
文件放到你的Emacs配置目录中 - 在你的配置文件中添加:
(add-to-list 'load-path "/path/to/picgo.el")
(require 'picgo)
使用Doom Emacs #
在packages.el
中添加:
(package! emacs-picgo
:recipe (:host github :repo "zzz929625/emacs-picgo"))
在config.el
中声明:
(use-package! emacs-picgo
:config
;; 设置PicGo可执行文件的路径(如果需要),正常情况下 core 版本的 picgo 或者 piclist 正确安装后能够直接在终端中调用
;; (setq picgo-executable "/path/to/picgo")
;; 设置上传图片的快捷键
(map! :leader
(:prefix ("i" . "插入")
:desc "上传当前光标处图片" "u" #'picgo-upload-image-at-point
:desc "批量上传文档中所有图片" "b" #'picgo-batch-upload-images
:desc "上传剪贴板图片" "p" #'picgo-upload-clipboard-image))
;; 或者使用全局快捷键
;; (global-set-key (kbd "C-c i u") #'picgo-upload-image-at-point)
;; (global-set-key (kbd "C-c i b") #'picgo-batch-upload-images)
;; (global-set-key (kbd "C-c i p") #'picgo-upload-clipboard-image)
)
配置 #
本插件提供了三个可以调用的命令
picgo-upload-image-at-point
上传光标当前行的图片picgo-batch-upload-images
批量上传文档中的所有图片picgo-upload-clipboard-image
上传剪贴板中的图片
可以使用上一部分的配置中对其设置快捷键进行调用
结语 #
这个插件我是通过 claude 编写的,只涉及了代码生成之后的 debug 工作,由于我对代码可以说是零基础,所以如果插件使用过程中有什么问题的话,我只能尽量解答,但是针对特殊用例或者是有什么问题,也只能说尽量帮忙,毕竟能力有限还请见谅😀