使用Emacs中的org-mode寫cnblogs之圖片插入
Table of Contents
用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,程序很小,但是功能很強大,既可以截圖也可以錄視頻,還可以編輯視頻,對於簡單的插入便條,字幕之類的處理,特別方便。還可以設置快捷鍵,截選擇框、窗口、滾動條內窗口內容等等,非常方便。下面截個圖粘貼一下做個示例: