【问题标题】:How to use function `write-region`?如何使用函数`write-region`?
【发布时间】:2016-10-21 14:26:14
【问题描述】:

我尝试制作一个新文件,根据这个问答:How to create an empty file by elisp?

我复制了代码

(write-region "" nil custom-file)

进入一个新的 emacs 文件并想通过 C-x C-e 执行它。但我得到的只是

 Wrong type argument: stringp, nil

那么我在这里做错了什么?我对 emacs 很陌生,并尝试通过谷歌搜索找到解决方案,但没有成功。

【问题讨论】:

    标签: file emacs


    【解决方案1】:

    听起来custom-file 的值是nil。它应该是一个字符串(命名一个文件)。

    如果您将变量 debug-on-error 设置为 t,那么您将获得一个回溯,它会显示预期作为字符串的哪个 arg 实际上是 nil

    尝试将您的(相对)文件名包装在扩展文件名中,如下所示:

    (write-region "" nil (expand-file-name "new_file"))
    

    现在它应该在当前default-directory 中创建文件。

    在执行C-x C-e 时,光标所在的位置也会有所不同。放在文档末尾。

    【讨论】:

    • 如果我用“test_new_file”替换自定义文件,emacs底部的输出是“test_new_file”。但我找不到new_file。或者我应该用什么替换它?新文件应该在我的主文件夹中,对吧?还是别的地方?
    • 您要求它写入文件的文本为空:""。因此,您可以预期该文件将为空。您(显然)要求 Emacs 将一个空字符串写入一个新文件。你能指望什么?你真正想做什么?
    • 问题不在于文件是空的(我也没有在任何地方这么说)。然而问题是,根本没有创建任何文件。
    • 为我工作。您是否使用了 absolute 文件名?如果没有,请尝试将您的(相对)文件名包含在 expand-file-name 中。
    猜你喜欢
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2018-10-22
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多