如何编写一个elisp函数返回文件的内容作为字符串?

时间:2012-12-27 22:02:06

标签: file elisp

嗯,标题就是全部;)。当然,我可以在其中创建一个新的缓冲区insert-file-contents,然后将其放入变量,杀死缓冲区并返回变量 - 但这似乎有点过分。还有更好的方法吗?

NB。我的用例是.emacs smtpmail-auth-credentials声明 - 我在某个文件中有我的密码,并且不想再次将其放入.emacs

1 个答案:

答案 0 :(得分:6)

我相信没有简单的方法可以在不涉及缓冲区的情况下做你想做的事情。我会像这样使用临时缓冲区:

(defun file-contents (filename)
  (interactive "fFind file: ")
  (with-temp-buffer
    (insert-file-contents filename)
    (buffer-substring-no-properties (point-min) (point-max))))

如果您不想要格式解码,自动解压缩等,可能需要使用insert-file-contents-literally