需求

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不知道。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐