在emacs lisp中如何将字符串附加到我不想打开的文件中?

时间:2013-06-29 04:28:17

标签: emacs elisp

我需要追加字符串S(属于无缓冲区)到特殊文件F,但是因为我希望此操作尽可能少花时间我不希望F作为缓冲区打开。

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

3 个答案:

答案 0 :(得分:16)

(write-region <STRING> nil <FILENAME> 'append)

答案 1 :(得分:6)

你为什么不尝试这样的事情:

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

编辑:显然,正如@Stefan回答的那样,write-region能够将字符串附加到文件中,所以我建议改为使用他的答案。

答案 2 :(得分:1)

不确定你想要实现什么,但是这样的事情可能会起作用......你可以把路径放到你要追加的文件上代替/ path / to / F.

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