需求
emacs下用org-mode做笔记,写文章的时候经常需要插入图片或者截屏,键盘一个字母一个字母地输入引用太麻烦,有没有更好的解决方案
看了好久,最后找到了emacs的这样一个插件:org-download
它可以现实以下功能:
- 通过鼠标拖拽图片到emacs里,实现图片插入
- 通过绑定的快捷键激活外部截屏工具,以鼠标选定截屏区域,选好后直接插入截图
GitHub上有源码
https://github.com/abo-abo/org-download
README有使用说明,但是GitHub上的使用说明实在是太简略,我整了好久才搞明白
环境说明
- 操作系统: Linux(Manjaro)64位
- emacs: spacemacs/emacs26.2
- 模式:org-mode(必须启用org-mode模式)
- 外部截图软件:screenshot(必须是命令行截屏工具)
配置
第一步:emacs安装org-download插件
emacs怎么安装插件的就不说了
第二步:配置org-download
官网提供的配置非常简洁:
(require 'org-download)
;; Drag-and-drop to `dired`
(add-hook 'dired-mode-hook 'org-download-enable)
上面的配置仅能实现鼠标拖拽插入图片的功能,
另外我们还希望在编辑的时候直接一键截屏,然后插入文档中,故又加入了快捷键截屏的功能:
(use-package org-download
:ensure t
;;将截屏功能绑定到快捷键:Ctrl + Shift + Y
:bind ("C-S-y" . org-download-screenshot)
:config
(require 'org-download)
;; Drag and drop to Dired
(add-hook 'dired-mode-hook 'org-download-enable)
)
通过以上配置我们把截屏的功能绑定到了快捷键:Ctr + Shift + Y上,
这样我们在写博客的时候临时需要截屏只需要按下Ctr + Shift + Y即可。
- 截图保存的图片名称:时间戳+截屏软件名称.png
- 截图保存的图片路径:以org文档的最外层标题为目录名,保存的org文档的同级目录下,如果不存在则创建
另外截屏存储路径,及文件名什么的都可以配置,我试了下,比较鸡肋,很不灵活,想看的话可以仔细看下他们的官方文档。
关于外部截图软件的说明
org-download插件截屏的时候依赖外部截图软件
该外部截图软件必须是命令行截图工具,
与我们常用的QQ截图工具啊什么的是不一样的,
什么是命令行截图工具呢?
就是通过执行一个命令就可以直接调用截屏
org-download默认依赖的命令行截屏工具如下:
- Windows:imagemagick/convert;
- Linux:gnome-screenshot, scrot, gm, xclip;
- MAC:screencapture
看GitHub里用户提的issues,好像除了默认支持的命令行截屏工具外,其他的有兼容性问题,比较这个插件也是个人开发的,
不过默认支持的已经包含了最流行,最常用的命令行截屏工具了,
我用的是Linux,外部截图软件是系统自带的,Windows的话估计得另外装,MAC不知道。