Org-download 不错

今天用了 org-download package,直接elpa上安装的。 往 org 里面加图片很方便,可以直接从浏览器或者本地拖放图片到 org 中。

2 个赞

spacemacs org layer 自带了

插入图片时的效果是这样,能不能把图片上面的那一行说明给去掉啊?

在官网已找到答案。(setq org-download-annotate-function 'ignore)

3 个赞

能从剪贴板粘贴吗?

你这个不行呀,可以参考 issue:

1 个赞

为什么我拖文件进去是打开而不是插入链接呢

1 个赞

我也用 org-download,不过我用 posframe 预览插入的图片,不太习惯直接在org显示图片

(use-package org-download
  :after org
  :bind (:map org-mode-map
              ("<f2>" . org-download-screenshot))
  :ensure nil
  :config
  (setq org-download-method 'attach)
  (setq org-download-display-inline-images 'posframe)
  (setq org-download-screenshot-file (concat temporary-file-directory "image.png"))
  (setq org-download-image-attr-list
        '("#+ATTR_HTML: :width 80% :align center"))
  (when (eq system-type 'windows-nt)
    (setq org-download-screenshot-method "convert clipboard: %s"))
  (org-download-enable))
4 个赞

我也用 org-download 。

Surface Pro 上 用 OneNote 记录一些图像性质的笔记,剪贴版和 Desktop 分享,一键粘贴到 Org 笔记中,补充 org mode 这方面的不足。

1 个赞

需要看的时候怎么显示图片呢?

C-c C-x C-v org-toggle-inline-image

1 个赞

想问一下在wsl 的emacs 里是否就不能使用了呢?尤其是截屏,能否调用从wsl的emacs 调用宿主windows10 的截屏工具呢? 尝试了一下,确实是可以调用宿主的程序的,比如可以调用windows系统里的i_view64.exe

;; 可以执行
(shell-command "i_view64.exe /capture=4 /convert=\"d:\\temp.jpg\"")

只是因为调用了win上的程序,所以保存路径也要写成win下的格式,这挺不方便的,需要自己转换,还有一个不方便的是,你没法将emacs窗口最小化

;;wsl 中无效
(lower-frame)

这就很尴尬了,不知道大伙有没有什么比较好的方法。

我看posframe 官网说Mac系统需要emacs26以上,gnome需要emacs27以上,2年前emacs还没有出到27吧?你的电脑是Mac?

他是 posframe 作者,支不支持他说了算 :joy:

2 个赞

其实支持不支持,是emacs核心开发者说了算,我就是做个包装 :rofl:

How to paste images into Emacs org-mode running in Windows Subsystem for Linux - Alex Rampp

可以看看这个解决方案,我在这个基础上自己做了一些调整就可以用了。

感谢,已经解决了,前面按照某位大佬魔改的李杀版本就ok了

;;image cut settings
(defun my-yank-image-from-win-clipboard-through-powershell()
  "to simplify the logic, use c:/Users/Public as temporary directoy, and move it into current directoy"
  (interactive)
  (let* ((powershell "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe")
         (file-name (format-time-string "screenshot_%Y%m%d_%H%M%S.png"))
         ;; (file-path-powershell (concat "c:/Users/\$env:USERNAME/" file-name))
         (file-path-wsl (concat "./img/" file-name))
         )
    ;; (shell-command (concat powershell " -command \"(Get-Clipboard -Format Image).Save(\\\"C:/Users/\\$env:USERNAME/" file-name "\\\")\""))
    (shell-command (concat powershell " -command \"(Get-Clipboard -Format Image).Save(\\\"C:/Users/Public/" file-name "\\\")\""))
    (rename-file (concat "/mnt/c/Users/Public/" file-name) file-path-wsl)
    (insert (concat "#+ATTR_LATEX: :width 0.5\\textwidth\n"))
    (org-indent-line)
    (insert (concat "[[file:" file-path-wsl "]] "))
    ))