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

mbo*_*ork 2 elisp file

嗯,标题有这一切;).当然,我可以创建一个新的缓冲区,insert-file-contents然后将它放入变量,杀死缓冲区并返回变量 - 但这似乎有点过分.有没有更好的办法?

NB.我的用例是.emacs声明smtpmail-auth-credentials- 我在一些文件中有我的密码,并且不想再把它放进.emacs去.

Tre*_*son 6

我相信没有简单的方法可以做你想要的而不涉及缓冲区.我会像这样使用临时缓冲区:

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

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