使用Emacs中的org-mode写cnblogs之图片插入

*/-->

code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}

使用Emacs中的org-mode写cnblogs之图片插入

用Emacs的org-mode来做记录和写博客,真的是太方便了。而其中,原生的org-mode有所欠缺的是图片的插入。

1 效果

2 原生org-mode的图片插入

org-mode中插入图片或者其他的资源,是通过 C-c C-l 把图片的文件路径粘贴进行进行插入。需要在org中显示图片,首先需要Emacs支持图片的显示。这个可以下载一个支持图片的版本(主要是图片显示的lib_png之类的.dll)。

但是这种方式比较麻烦,每次都要创建一个图片,然后,把图片的文件路径粘贴进行进行插入。

3 使用org-download进行图片插入

使用package插件安装org-download,然后配置:

(use-package org-download
:bind ("C-S-y" . org-download-clipboard)
:config
(defun org-download-clipboard ()
"Save the captured image from clipboard to file, and insert into buffer. Or org-download-yank."
(interactive)
(let ((link "http://images2015.cnblogs.com/blog/717724/201703/717724-20170318145647104-177813066.jpg"))
(if (eq 0 (shell-command (format "\"c:/Program\sFiles/ImageMagick-6.9.3-Q16/convert.exe\" clipboard:myimage %s" link) "*screenshot2file*" "*screenshot2file*"))
(org-download-image link)
(org-download-yank)))))

org-download本身会自动在org文档当前目录下创建一个与文档同名的文件夹来保存图片,然后支持多种途径的图片插入,插入之后会复制或者下载一张图片到图片文件夹下面:

  • 用url把图片插入,然后自动下载;
  • 复制图片文件路径,然后插入;
  • 拖拽图片插入。

但是,org-download不会把剪切板中的图片自动保存一个图片文件,然后插入。所以,必须要借助于外部程序。可以使用任意一个带命令行参数的图片保存器将剪切板中的图片进行保存。有人写了一个csharp的程序,很小很小就可以做到了。我这里直接使用ImageMagick ,因为这个软件实在是太强大了,而且是免费的。路径我们可以根据自己的安装路径来进行配置,然后,先调用里面的convert.exe把剪切板里面的图片保存到一个临时目录下面。我这里是 d:/temp/ ,这个可以根据自己的需要来设置。然后,定义了一个快捷键 C-S-Y ,比原来的粘贴键多了一个shift,就可以粘贴图片了。

4 截图软件

剪切板中的图片可以是从另外一个地方复制来的,但更多的场景是使用截图软件进行截图,然后粘贴的。我使用的截图软件是faststone,程序很小,但是功能很强大,既可以截图也可以录视频,还可以编辑视频,对于简单的插入便条,字幕之类的处理,特别方便。还可以设置快捷键,截选择框、窗口、滚动条内窗口内容等等,非常方便。下面截个图粘贴一下做个示例:

Date: 2017-01-13 21:41

Created: 2017-03-18 周六 14:56

Emacs 26.0.50 (Org mode 8.2.10)

Validate

使用Emacs中的org-mode写cnblogs之图片插入的更多相关文章

  1. 用emacs的org2blog组件写cnblogs博客 -- 环境配置及使用

    Table of Contents 配置 使用 创建一篇博文并发布 更新一篇博文 删除一篇博文 待办 本文给出了一个安装.配置org2blog的方法,实现在emacs中书写blog文章.并发布到cnb ...

  2. 在Emacs中使用plantuml画UML图

    在Emacs中使用plantuml画UML图 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #83 ...

  3. 使用org-mode写cnblogs博客

    使用org-mode写cnblogs博客 */--> pre.src {background-color: #002b36; color: #839496;} pre.src {backgrou ...

  4. Emacs中的拼写检查

    无论是在Emacs中写英文日记(diary).Org mode笔记,还是撰写程序的注释和文档,拼写检查都是一项提高工作效率.保证成果品质的必不可缺的工具.拼写检查对于常见的文字处理软件(如Word.L ...

  5. Emacs 中使用中文插件 eim

    在 Emacs 中输入中文,一般用 ibus 一类的输入法也能应付,但来回切换有点麻烦,这里介绍国人写的一个好插件 eim. - 安装 由于在 list-packages 中没有找到这个插件,所以不能 ...

  6. [转载]生活在 Emacs 中

    Brian Bilbrey2002 年 8 月 20 日发布 教程简介 本教程讲什么? Emacs 是一个流行的无模式文本编辑器,有许多强大的功能.本教程将教您使用 Emacs 的基础知识.为了让您很 ...

  7. 在Emacs中使用ECB(转载)

    转自:http://joerong666.iteye.com/blog/1813876 By:             潘云登 Date:          2009-7-9 Email:       ...

  8. Windows平台下在Emacs中使用plantuml中文乱码问题(已解决)

    Windows平台下在Emacs中使用plantuml中文乱码问题(已解决) */--> code {color: #FF0000} pre.src {background-color: #00 ...

  9. JavaSE复习日记 : 继承关系和super关键字以及继承关系中方法的覆写

    /* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复 ...

随机推荐

  1. 通过js来修改div的style(background,border,。。。。。。。)

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  2. mytest 截图

  3. PHPstorm端口配置问题

  4. Servlet程序开发--Servlet 与 表单

    servlet程序: doPost方法时为了防止表单提交时post方式的问题.否则只能处理get请求 package org.lxh.servletdemo ; import java.io.* ; ...

  5. do{...}while(0)的妙用(转)

    源:http://www.cnblogs.com/lizhenghn/p/3674430.html 在学习第一门编程语言时,就已经介绍了顺序分支.条件分支.循环分支.比如循环分支有for.while. ...

  6. didMoveToSuperView 引发的思考

    1. - (void)didMoveToSuperview 通知视图已经移动到一个新的父视图中 2. /**系统自动调用(留给子类去实现)**/ - (void)didAddSubview:(UIVi ...

  7. usb转串口驱动时会出现“文件的哈希值不在指定的目录”这样的提示

    一般在安装一些usb转串口驱动时会出现“文件的哈希值不在指定的目录”这样的提示,那么怎么解决呢?知道的别喷我哦,我只是再普及一下,嘿嘿1.鼠标移到右下角,点击“设置”,再点击“更改电脑设置”2.点击最 ...

  8. php运行机制初探

    对于这个结果我也很吃惊,但是事实就在眼前,没办法啊,那么到底为什么会有这样的效果呢,咱们继续一探究竟: *.php(php代码) -----Scanner(zend引擎逐行扫描变为zend可以识别的语 ...

  9. C++ Builder多线程编程技术经验谈(转)

    源:C++ Builder多线程编程技术经验谈 线程之可行性   在很多情况下,可能需要为程序创建线程.这里给出其中一些可能性: (1)如果创建的是一个多文档接口(Multiple Document ...

  10. 猜数游戏-flag的运用

    package my;import java.util.Scanner;public class MyJava {        public static void main(String[] ar ...