org-mode下截图要怎么做啊?我在org-download里面看到截图可以用这几种工具gnome-screenshot or scrot or gm,但是这个要怎么在windows上实现啊? org-mode图片大小的显示设置在windows下不管用呢?在图片上一行加入#+ATTR_ORG: :width 300px不管用。网上说Imagemagick很好用,但是这个要怎么在windows上用啊?
没用过 org-download。把你截的图片插入 Org 不就完了吗?
ImageMagick 支持需要在编译 Emacs 期间开启(有安装的话,编译时会自动启用)。
window7电脑上没有这些截图工具啊,不知道怎么配置,这些截图工具在哪里下载?支持windows吗?
ImageMagick在编译的时候开启,我安装了ImageMagick,我应该怎么在org-mode里面进行设置让它对图片进行缩小呢?
截图什么的是基于linux窗口管理工具的,估计没法拿来用。顺带windows应该有自带的截图工具啊。 imagemagic 是要在编译是加入选项才有用的。 GNU/Emacs主页有教你怎么在windows下编译。中文资料也挺多。比如这个: http://emacsist.com/10177
不了解 Windows,Mac 和 Ubuntu 系统都自带了一个截图工具。各个平台下第三方截图工具也非常多,应该稍微搜索下就能找到。
依据 (elisp) ImageMagick Images :
To check for ImageMagick support, use the following:
(image-type-available-p 'imagemagick)
返回 t
表示你的 Emacs 有 ImageMagick 支持。之后,看下 org-image-actual-width
的 doc-string,具体写法我不太记得了,论坛里之前讨论过。
emacs的工作环境设置 - 简书
今天, 我在这里找到了在 win7 下的截图方法 用 i_view32 刚好我有用过这个软件, 记住环境变量里要加入
请问怎么在windows下截图?
当时我觉得麻烦所以就没有写代码,上面的帖子已经说的很清楚了,我把它加工了一下,已经可以很好的使用。 只要是你能找到命令行的软件,都可以放在emacs中,应该说windows下的软件是很丰富的,配置起来还是很容易的。
;; Code for capture from http://www.jianshu.com/p/77841e0aba46
(defun lxeg0429/capture ()
"Take a screenshot into a unique-named file in the current buffer file
directory and insert a link to this file."
(interactive)
(lower-frame) ;; 把emacs最小化
(setq filename
(concat (make-temp-name "img-") ".png"))
;; (shell-command (format "boxcutter C:/Total Commander/Software/Emacs/Files/Images/\"%s\"" filename))
(shell-command (concat " \"C:/Total Commander/Software/IrfanView/i_view32.exe\" /capture=4 /convert=" "\"C:/Total Commander/Software/Emacs/Files/Images" (format "\\%s\"" filename))) ;; IrfanView 截图
(insert (concat "[[C:/Total Commander/Software/Emacs/Files/Images" filename "][capture]]"))
;; (shell-command (format " \"C:/Total Commander/Software/picpick/picpick.exe\" C:/Total Commander/Software/Emacs/Files/Images/\"%s\"" filename)) ;; 使用picpick来添加注释
)
@xuchunyang @LdBeth 可否帮忙给看一下上面的代码?谢谢!
我定义了(defvar Software "c:/Total Commander/Software/")
,我怎么才能把上面代码中的大串字符替换成关于Software
有关的代码,这样可以简化代码。
concat
或 format
?
我想加concat, 但是不知道怎么加,我对代码不熟。我加的concat,emacs识别不了,所以来向你们求助了。
shell-command 不需要引号吧?
因为不是很了解 windows, 我只能建议你先弄明白用 cmd 或者别的什么需要输入什么命令,再确保传递给 shell-command 的字符串就是需要的命令。
至于 format 之类的用法,结合文档多试几次就可以学会了。
上面的代码可以运行,没有问题。就是不知道怎么简化,试了好多次了,我对lisp不了解,写的代码全都参考别人来的。没有在google上搜到类似的代码。
(setq lxeg0429-capture-path "C:/Total Commander/Software/Emacs/Files/Images" )
(defun lxeg0429/capture ()
"Take a screenshot into a unique-named file in the current buffer file
directory and insert a link to this file."
(interactive)
(lower-frame) ;; 把emacs最小化
(let ((filename
(concat (make-temp-name "img-") ".png"))
(filepath lxeg0429-capture-path))
(shell-command (concat " \"C:/Total Commander/Software/IrfanView/i_view32.exe\" /capture=4 /convert="
"\"" filepath (format "\\%s\"" filename))) ;; IrfanView 截图
(insert (concat "[[" filepath filename "][capture]]")))
)
差不多就这样。
哦,好的,谢谢了。又学了不少东西。
i_view32.exe /capture=2 /convert=c:\capture_$U(%d%m%Y_%H%M%S).jpg
在 i_options.txt 选项文件中看到这一段, 我想用日期时间格式来生成截图的文件名, elisp 不会, 试了几次都不行, 请教!
有个format-time-string
可以用
示例:
(format-time-string "%Y%m%d%H%M%S")
==> "20170308195653"
emacs-lisp最基本的用法可以参考:
如果不怎么会lisp的话,把我的示例里面(make-temp-name "img-")
用这个换掉就可以了。
谢谢! 我试试, 你说的叶文彬的前段时间是有在学,但只看了点就放下了, 因最近工作忙(本人非 IT人士)。
非IT人士+1 不见得一定要集中学习,要用到的时候看一看就可以了。
感觉这里应该是 user 居多,developer 占少数吧?我也是 user 一枚:stuck_out_tongue_closed_eyes: