代码之家  ›  专栏  ›  技术社区  ›  Ryan C. Thompson

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

  •  0
  • Ryan C. Thompson  · 技术社区  · 16 年前

    我在试着做Emacs' delete-file 函数删除名称中带有感叹号的文件。

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

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

    我试过反斜杠感叹号和shell引用文件名字符串,但都没有成功。我发现我配置中的某些东西导致了这一点,但我还没有弄清楚到底是什么原因。我已经根据我的习惯追踪了问题的来源 system-move-file-to-trash 函数,我现在必须调试它。

    那么,我怎样才能让这个工作呢?

    Emacs版本: GNU电子制造商23.1.50.1
    Emacs快照: 安装时间:1:20090730-1~ jaunty1

    2 回复  |  直到 11 年前
        1
  •  3
  •   Trey Jackson    16 年前
    M-x delete-file
    

    然后只需输入文件名,不要转义任何内容,只需输入文件名,

    !home!blah!filename
    

    它只是起作用。Lisp调用也是如此,

    (delete-file "!home!blah!filename")
    
        2
  •  1
  •   Ryan C. Thompson    16 年前

    我找到了答案。我的习惯 system-move-file-to-trash 函数,删除文件将自动使用,调用不当 shell-quote-argument 在文件名上。显然,命令的参数使用 call-process 需要壳牌公司报价。