Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何删除带有感叹号的文件!使用emacs';删除文件_File_Emacs - Fatal编程技术网

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

File 如何删除带有感叹号的文件!使用emacs';删除文件,file,emacs,File,Emacs,我正在尝试使emacs的delete file函数删除名称中带有感叹号的文件 具体的用例是,我将emacs设置为将所有备份文件保存在单个目录中,并删除旧的备份文件。但是,当所有备份文件都放在一个目录中时,目录分隔符/将替换为 当对名称中带有感叹号的文件调用delete file时,它将返回零,并且不会删除该文件。它没有发出任何错误的信号。通常,delete file返回nil。无论如何,emacs的备份系统使用delete file进行删除,我不希望仅仅为了更改一行而重新定义整个函数 我尝试过反

我正在尝试使emacs的delete file函数删除名称中带有感叹号的文件

具体的用例是,我将emacs设置为将所有备份文件保存在单个目录中,并删除旧的备份文件。但是,当所有备份文件都放在一个目录中时,目录分隔符
/
将替换为

当对名称中带有感叹号的文件调用delete file时,它将返回零,并且不会删除该文件。它没有发出任何错误的信号。通常,delete file返回nil。无论如何,emacs的备份系统使用delete file进行删除,我不希望仅仅为了更改一行而重新定义整个函数

我尝试过反斜杠感叹号和shell引用文件名字符串,但两者都不起作用。我发现我的配置中有什么东西导致了这种情况,但我还没有弄清楚是什么原因。我已经跟踪了问题的根源,找到了我的自定义
系统将文件移动到垃圾桶
函数,现在我必须调试该函数

那么,我怎样才能让这一切顺利进行呢

Emacs版本: GNU Emacs 23.1.50.1
emacs快照: 安装时间:1:20090730-1~1

M-x delete-file
然后只需输入文件名,不要转义任何内容,只需输入文件名

!home!blah!filename
而且它很有效。lisp调用也是如此

(delete-file "!home!blah!filename")
然后只需输入文件名,不要转义任何内容,只需输入文件名

!home!blah!filename
而且它很有效。lisp调用也是如此

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

我找到了答案。我的自定义
系统将文件移动到垃圾桶
函数,删除文件将自动使用该函数,在文件名上不适当地调用了
shell quote参数
。显然,使用
调用进程运行的命令的参数不需要被shell引用。

我找到了答案。我的自定义
系统将文件移动到垃圾桶
函数,删除文件将自动使用该函数,在文件名上不适当地调用了
shell quote参数
。显然,使用
调用进程运行的命令的参数不需要被shell引用。

您观察到的delete file是交互工作的,这为我提供了所需的线索。我怀疑我的一个自定义设置以某种微妙的方式破坏了完成读取,因此即使删除文件没有提示我输入文件,它也会以某种方式破坏。您观察到删除文件以交互方式工作,这为我提供了所需的线索。我怀疑我的一个自定义设置以某种微妙的方式破坏了完成读取,因此即使删除文件没有提示我输入文件,它也会以某种方式破坏。尝试使用Emacs的官方版本,可能问题出在这个中间版本中。对于阅读此文的任何人,问题是,您不应该对传递给
调用进程
的字符串调用
shell quote参数。显然,
调用过程
绕过了shell,因此shell引用只会产生问题。尝试使用官方版本的Emacs,可能问题出在这个中间版本中。对于任何阅读本文的人,问题是,您不应该对传递给
调用进程
的字符串调用
shell quote参数。显然,
调用过程
绕过了shell,因此shell引用只会产生问题。