Org-mode 记笔记截图工具

在用org-mode记笔记的时候,有的时候需要截个图嵌进来,因此搜罗并改写了这个小巧的截图elisp代码,其中在retina下通过ImageMagick的命令行工具Convert把截图缩放到50%使截图看起来不辣么大:triumph: ,截图会集中存放在以org文件名开头的"_imgs"文件夹下,可以将此函数绑定到喜欢的键位,我是绑定到了C-c s c,我感觉挺好用的。

(defun my-org-screenshot ()
  "Take a screenshot into a time stamped unique-named file in the
same directory as the org-buffer and insert a link to this file."
  (interactive)
  (org-display-inline-images)
  (setq filename
        (concat
         (make-temp-name
          (concat (file-name-nondirectory (buffer-file-name))
                  "_imgs/"
                  (format-time-string "%Y%m%d_%H%M%S_")) ) ".png"))
  (unless (file-exists-p (file-name-directory filename))
    (make-directory (file-name-directory filename)))
					; take screenshot
  (if (eq system-type 'darwin)
      (progn
	(call-process-shell-command "screencapture" nil nil nil nil " -s " (concat
									    "\"" filename "\"" ))
	(call-process-shell-command "convert" nil nil nil nil (concat "\"" filename "\" -resize  \"50%\"" ) (concat "\"" filename "\"" ))
	))
  (if (eq system-type 'gnu/linux)
      (call-process "import" nil nil nil filename))
					; insert into file if correctly taken
  (if (file-exists-p filename)
      (insert (concat "[[file:" filename "]]")))
  (org-display-inline-images)
  )

(global-set-key (kbd "C-c s c") 'my-org-screenshot)

14 个赞

貌似我的配置中也有类似的这么一段代码,非常好用,就是不能在截图上面再做一些标注。

Emacs本身是能够控制图像的大小的,不过编译的时候需要带上ImageMagick,否则不会生效。

是吗?:heart_eyes: 那我加入了ImageMagick编译了,如何控制图像大小呢?

http://stackoverflow.com/questions/11670654/how-to-resize-images-in-org-mode

wow回复链接很帅的样子

1 个赞

我试了下,这个好像是控制导出HTML中图像的大小的样子,在buffer里头的图像大小依旧:confused:

不好意思我没看清就把链接发给你了😂

(setq org-image-actual-width 300) => always resize inline images to 300 pixels

(setq org-image-actual-width '(400)) => if there is a #+ATTR.*: width=“200”, resize to 200, otherwise resize to 400

(setq org-image-actual-width nil) => if there is a #+ATTR.*: width=“200”, resize to 200, otherwise don’t resize

参见:https://lists.gnu.org/archive/html/emacs-orgmode/2012-08/msg01402.html

2 个赞

:grinning:wonderful!!! 谢谢:tada:

这个是一直都有的。超帅的链接叫 OneBox 还能识别视频 等等

直接粘贴视频链接就可以显示成这样么?需要特殊的 markdown 标记吗?

OneBox 支持超多链接种类 直接放链接就可以识别 URL 可识别的种类也可以进行扩展

话说我一直不会编译 Emacs 怎么整呢?给个链接咯 :smiley:

Mac 用户直接 homebrew 大法嘛, brew info emacs 应有尽有,

==> Options
--with-cocoa
	Build a Cocoa version of emacs
--with-ctags
	Don't remove the ctags executable that emacs provides
--with-d-bus
	Build with d-bus support
--with-glib
	Build with glib support
--with-gnutls
	Build with gnutls support
--with-imagemagick
	Build with imagemagick support
--with-librsvg
	Build with librsvg support
--with-mailutils
	Build with mailutils support
--with-x11
	Build with x11 support
--without-libxml2
	Don't build with libxml2 support
--devel
	Install development version 25.0.92
--HEAD
	Install HEAD version

然后 brew install emacs --with-imagemagick --with-gnutls --with-cocoa 什么的参数自己按照需要选

2 个赞

@xcodebuild Linux 勒。。。单位是 Linux 给我个链接我自己可以去挖挖看。之前 apt-get 装的 Emacs 老版本,为了装新的版本搞了一早上。开启论坛 Chrome 的自动提醒,感觉这个提醒功能变得好好用哟。

Linux 的话 xha 写过一篇:http://ergoemacs.org/emacs/building_emacs_from_git_repository.html

1 个赞

哦哦啦 谢谢谢谢 么么哒 话说 你的名字 我根本不任意 余不出头是啥字?

:joy: 佘 she 第二声

1 个赞

你是外星人吧 这么偏的姓 没跑了 外星人 :alien: 佘 佘佘佘佘 翻了10遍候选字才找到 没文化 真可怕

:joy: 新华字典的解释是: 佘,用作姓

话说Chrome通知确实是好用。(我们是不是太水了😂)

1 个赞

呵呵呵呵呵呵呵 好啦好啦 不说啦 这是最后一条 请别回