有什么办法能从外部剪贴板粘贴图片到Emacs?

网上搜索了一下发现方法挺多了,不太统一。

请问现在一般比较常用方法是那个?

之前一直使用文本模式,但是最近需要从网上粘贴一点图片。

主要使用windows和Snipping Tool抓图

多谢。

你可以康康这个

Windows 下可以参考 screenshot - Paste an image on clipboard to Emacs Org mode file without saving it - Stack Overflow 这个回答里的 powershell 脚本,啥也不用装。这个问题的关键步骤是让 Emacs 调用外部程序保存剪切板的图片到本地,然后 Emacs 插入图片路径到当前 buffer 中。

  (shell-command "snippingtool /clip")
  (shell-command (concat "powershell -command \"Add-Type -AssemblyName System.Windows.Forms;if ($([System.Windows.Forms.Clipboard]::ContainsImage())) {$image = [System.Windows.Forms.Clipboard]::GetImage();[System.Drawing.Bitmap]$image.Save('" imgpath "',[System.Drawing.Imaging.ImageFormat]::Png); Write-Output 'clipboard content saved as file'} else {Write-Output 'clipboard does not contain image data'}\""))

粘贴图片到 Emacs 前两天我特意写了一篇文章,但是博客界面有个地方不会调,就没有 push 上去。

1 个赞

有谁知道 linux 下有什么方法?

我自己用的跟这个需求有关的代码(linux下), 需要用到xclip

  (defun org-insert-clipboard-image ()
      (interactive)
      (setq filename
            (concat
             (make-temp-name
              (concat "~/Dropbox/org/images/"
                      (file-name-base buffer-file-name)
                      "_"
                      (format-time-string "%Y%m%d_%H%M%S_")) ) ".png"))
      (call-process-shell-command (concat "xclip -selection clipboard -t image/png -o > " filename))
      (insert (concat "[[" filename "]]"))
      (org-display-inline-images))
    (map! "C-c i" 'org-insert-clipboard-image)
    (after! org
      (setq org-image-actual-width (/ (display-pixel-width) 3)))

xclip可以从剪贴板读取图片

1 个赞

请问有mac的调用方法吗?谢谢

坐等有人来写个插件一统多个系统平台下的解决办法。 :innocent:

pasteex-mode,当前支持Windows和MacOS:写了个工具pasteex-mode:一键保存剪贴板图片并插入图片链接(基于PasteEx) - #6,来自 m2fox

org-download,全平台通用

1 个赞