win10的Emacs中,能否在org-mode中插入剪贴板中的截图?

应用的版本是mingw编译的,win10,emacs29.05,doom。并且是用mingw来启动的。我也奇怪。

我用emacs gui直接启动就没有问题了……怀疑是mingw这个启动方式造成的,感谢回复。我为了用emacs rime ,好像必须要mingw启动。

用 emacs-rime 不需要 mingw 启动,只是你开始编译 emacs-rime.dll 的时候需要从 mingw启动。

wsl的话你把magick clipboard: “x.png” 改成magick.exe clipboard: “x.png” 本身其实就是调用imagemagick的命令而已。

貌似我没有编译emacs-rime.dll这步,我是完全按照官方的安装说明操作的,如果不用mingw启动,调出emacs-rime时会显示 Wrong type argument: stringp, nil 。每次都是这样。

有的,只是你没注意到。第一次启动 Emacs-rime 的以后会自动执行。或者手动执行M-x, rime-compile-module

你可以参考我的做法。只用 mingw 来编译 Emacs,不用它的包管理器来安装 Emacs。

十分感谢!我先好好研究一下。

我应该没有落下任何一个步骤,但是只要不是用mingw64来启动emacs,打开rime还是会提示wrong type argument stringp nill 这是debug信息:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  rime--load-dynamic-module()
  rime-activate("rime")
  activate-input-method("rime")
  #<subr toggle-input-method>(nil 1)
  ad-Advice-toggle-input-method(#<subr toggle-input-method> nil 1)
  apply(ad-Advice-toggle-input-method #<subr toggle-input-method> (nil 1))
  toggle-input-method(nil 1)
  funcall-interactively(toggle-input-method nil 1)
  command-execute(toggle-input-method)
  #<subr completing-read-default>("[-] Switch to project: " ("~/org/" "~/.emacs.d/") nil nil nil nil nil nil)
  apply((#<subr completing-read-default> "[-] Switch to project: " ("~/org/" "~/.emacs.d/") nil nil nil nil nil nil))
  vertico--advice(#<subr completing-read-default> "[-] Switch to project: " ("~/org/" "~/.emacs.d/") nil nil nil nil nil nil)
  apply(vertico--advice #<subr completing-read-default> ("[-] Switch to project: " ("~/org/" "~/.emacs.d/") nil nil nil nil nil nil))
  completing-read-default("[-] Switch to project: " ("~/org/" "~/.emacs.d/") nil nil nil nil nil nil)
  completing-read("[-] Switch to project: " ("~/org/" "~/.emacs.d/") nil nil nil)
  projectile-completing-read("Switch to project: " ("~/org/" "~/.emacs.d/") :action #f(compiled-function (project) #<bytecode 0x6a490aafe8f5cc9>))
  projectile-switch-project(nil)
  funcall-interactively(projectile-switch-project nil)
  call-interactively(projectile-switch-project)
  (lambda (_) (call-interactively (or (command-remapping #'projectile-switch-project) #'projectile-switch-project)))(#<marker (moves after insertion) at 1763 in *doom*>)
  button-activate(#<marker (moves after insertion) at 1763 in *doom*> t)
  push-button(1755 t)
  push-button((mouse-2 (#<window 3 on *doom*> 1755 (276 . 423) 1546359 nil 1755 (32 . 26) nil (2 . 18) (0 . 0))))
  funcall-interactively(push-button (mouse-2 (#<window 3 on *doom*> 1755 (276 . 423) 1546359 nil 1755 (32 . 26) nil (2 . 18) (0 . 0))))
  command-execute(push-button)

你的 emacs-rime 安装目录下已经生成 librime-emacs.dll 这个文件了吗?

还有你的 Emacs 是如何安装的,用的什么版本?

把你自己的Emacs 路径加入到 mingw 的 .bashrc ? 下面的路径改为自己的安装路径即可。

export PATH="/D/Dev_Tools/emacs28-nativecomp/bin:$PATH"

然后你在 mingw 的终端执行 emacs --versionwhich emacs 看看,是否识别到了你安装的 Emacs。

第一次还是要从 mingw 环境启动 emacs,然后在 Emacs 中执行 M-x rime-compile-module。如果成功了,重启 Emacs(这时不需要从 Mingw 启动了),就可以正常使用了。

GNU Emacs 29.0.50 Development version 05c4e7bfbdc5 on master branch; build date 2022-08-1 这是emacs版本,我是用mingw64编译的,这个path我应该没有加,但是如果不正确的话,应该不能从mingw64启动emacs,也不会能够正常使用emacs-rime吧。compile我又手动做了一次,显示成功的。我是用的doom emacs,rime安装路径应该是.local/straight/repos/emacs-rime这里面吧,确实没有dll的文件。配置文件是.local/cache/rime。目前用mingw64启动的emacs是能够配置和正常使用rime的。

我没用过 doom,你已经能正常用 emacs-rime了,应该已经成功编译 dll了。