在使用doom和emacs-plus时尝试用dried删除文件(D in dired buffer)会出现报错
似乎是它在使用本地的finder来删除远程文件?
这个bug有意思的地方在于只有用doom加上emacs-plus28才能触发.
目前我尝试过:
1 仅用emacs-plus无bug
2 doom 加上emacs-mac 或者emacs-plus29无bug
所有尝试都基于原始配置,doom的配制是直接用doom install生成的.
因为无法确定到底是哪出了问题,也没办法报bug,不知道有没有大佬能帮忙复现测试一下。
测试过程:
如果使用的是emacs plus28加上doom:通过tramp连接到远程, space o - 打开dired buffer, 用D删除一个文件。这样就能看到上图中的bug
感觉有动力去做这个测试的人不多啊。。。emacs-plus 和 emacs-mac 使用起来有啥区别?我一直用 emacs-mac。
因为 Doom Emacs 设置了
;; Use system trash for file deletion.
(setq delete-by-moving-to-trash t)
并且在 doomemacs/config.el at b395bd5392dd6ca88b230102363797b47b8f6991 · doomemacs/doomemacs · GitHub 将 system-move-file-to-trash
设置为 osx-trash-move-file-to-trash
,从而导致在 tramp 中无法使用,直接提 issue 就好了
自行 Fix 的方式是取消 system-move-file-to-trash
的定义,或者自行定义一个:
;; see document of `move-file-to-trash'
(defun system-move-file-to-trash (filename)
(process-file-shell-command
(format "trash %S" (file-local-name filename))))
1 个赞
哈哈,就是想着有类似配置的人能顺手确定一下bug,结果大佬直接解决了. emacs-mac和plus没什么区别其实,但是有一些细微的设置要调整:p.
Emacs 30.0.50 加了 remote-file-name-inhibit-delete-by-moving-to-trash
,默认为 nil, 这个值会覆盖delete-by-moving-to-trash
,应该不会再影响 tramp 的使用了。
1 个赞
感谢告知
我本地远程都装了 trash-cli
,然后直接定义 system-move-file-to-trash
就好了,倒是不会影响 tramp