在emacs lisp中,如何将字符串附加到我不知道的文件';我不想开门?

在emacs lisp中,如何将字符串附加到我不知道的文件';我不想开门?,emacs,elisp,Emacs,Elisp,我需要将字符串S(不属于缓冲区)附加到一个特殊文件F,但由于我希望此操作花费的时间尽可能少,所以我不希望将F作为缓冲区打开 另外,emacs中有一个内置函数,名为write region,但这需要将内容写入其中一个缓冲区内的F(在我的情况下,不能保证S应该是这样的字符串)。我怎样才能做到呢?你为什么不试试下面的方法呢: (defun my-append-string-to-file (s filename) (with-temp-buffer (insert s) (writ

我需要将字符串
S
(不属于缓冲区)附加到一个特殊文件
F
,但由于我希望此操作花费的时间尽可能少,所以我不希望将
F
作为缓冲区打开


另外,emacs中有一个内置函数,名为
write region
,但这需要将内容写入其中一个缓冲区内的
F
(在我的情况下,不能保证
S
应该是这样的字符串)。我怎样才能做到呢?

你为什么不试试下面的方法呢:

(defun my-append-string-to-file (s filename)
  (with-temp-buffer
    (insert s)
    (write-region (point-min) (point-max) filename t)))

编辑:显然,正如@Stefan回答的那样,
写入区域
能够将字符串附加到文件中,因此我建议使用他的回答。

不确定您想要实现什么,但类似的方法可能会奏效。。。您只需将要附加到的文件的路径替换为/path/to/F即可

(defun interactive-append (something)
  (interactive "sAppend S to F:")
  (shell-command (format "echo '%s' >> /path/to/F" something)))

(write region nil'append)

这似乎是一个解决方案。但是有可能根本不创建临时缓冲区吗?我不知道。Emacs不提供纯文件接口(打开、读取等)。然而,Emacs在处理缓冲区方面非常有效,因此速度应该非常快。
shell命令
需要花费大量时间,因为它需要调用外部shell,对吗?