如何删除带有感叹号的文件! 使用emacs的删除

我试图让emacs的delete-file功能删除名称中带有感叹号的文件。

特殊的用例是我设置了emacs将所有备份文件保存在一个目录中,并删除旧的备份文件。 但是,当所有备份文件都放在一个目录中时,目录separator /被替换为!

当名称中带有感叹号的文件调用delete-file时,它将返回零,并且文件不会被删除。 它不表示任何错误。 通常,删除文件返回nil。 无论如何,emacs的备份系统使用删除文件进行删除,我宁愿不重新定义整个功能只是为了更改一行。

我试着反斜杠感叹号和shell引用文件名字符串,都没有工作。 我发现在我的配置中有一些东西导致了这一点,但我还没有弄清楚什么。 我已经将问题的来源追踪到我的自定义system-move-file-to-trash功能,我现在必须进行调试。

那么,我该如何做这项工作?

Emacs版本:GNU Emacs 23.1.50.1
emacs-snapshot:已安装:1:20090730-1〜jaunty1


M-x delete-file

然后只需输入文件的名称,不要转义任何东西,只是名称,

!home!blah!filename

它只是工作。 对于lisp调用也是如此,

(delete-file "!home!blah!filename")

我找到了答案。 我的自定义system-move-file-to-trash功能将删除文件自动使用,对文件名称不恰当地称为shell-quote-argument 。 显然,使用call-process运行命令的参数不需要用shell引用。

链接地址: http://www.djcxy.com/p/38547.html

上一篇: How to delete files with exclamation marks! using emacs' delete

下一篇: OpenGL Texture doesn't show