有谁知道如何配置Erlang emacs模式,以便编译缓冲区[C-c C-k]将波束文件写入ebin目录而不是当前目录?
谢谢!
您可能想要查看Erlang问题邮件列表中的此主题:
http://www.erlang.org/pipermail/erlang-questions/2007-August/028367.html
此外,您应该能够以调试模式编译文件:C-u C-c C-k
erlang-compile命令应该支持前缀参数 . 您可能希望了解:
http://www.gnu.org/software/emacs/manual/html_node/elisp/Prefix-Command-Arguments.html
如果您设置目录结构,如下所示:
/ /src/ /ebin/
并将您的模块(例如“my_file.erl”)放在“/ src /”目录中,然后编译它(C-c C-k),然后Emacs应自动将光束放入“/ ebin /”目录 .
但是,如果您的模块不在名为“/ src /”的目录中(或者如果缺少“ebin”目录),则光束将与源文件一起删除 .
要查看其工作原理,请查看$ERL_TOP/lib/tools/emacs/erlang.el并搜索"ebin" . 在这里's what you'找到:
(defun inferior-erlang-compile-outdir () "Return the directory to compile the current buffer into." (let* ((buffer-dir (directory-file-name (file-name-directory (buffer-file-name)))) (parent-dir (directory-file-name (file-name-directory buffer-dir))) (ebin-dir (concat (file-name-as-directory parent-dir) "ebin")) (buffer-dir-base-name (file-name-nondirectory (expand-file-name (concat (file-name-as-directory buffer-dir) "."))))) (if (and (string= buffer-dir-base-name "src") (file-directory-p ebin-dir)) (file-name-as-directory ebin-dir) (file-name-as-directory buffer-dir))))
不知道什么时候添加了这个东西,但它是在OTP_R13B03,它在R14B03中适用于我 .
2 回答
您可能想要查看Erlang问题邮件列表中的此主题:
http://www.erlang.org/pipermail/erlang-questions/2007-August/028367.html
此外,您应该能够以调试模式编译文件:C-u C-c C-k
erlang-compile命令应该支持前缀参数 . 您可能希望了解:
http://www.gnu.org/software/emacs/manual/html_node/elisp/Prefix-Command-Arguments.html
如果您设置目录结构,如下所示:
并将您的模块(例如“my_file.erl”)放在“/ src /”目录中,然后编译它(C-c C-k),然后Emacs应自动将光束放入“/ ebin /”目录 .
但是,如果您的模块不在名为“/ src /”的目录中(或者如果缺少“ebin”目录),则光束将与源文件一起删除 .
要查看其工作原理,请查看$ERL_TOP/lib/tools/emacs/erlang.el并搜索"ebin" . 在这里's what you'找到:
不知道什么时候添加了这个东西,但它是在OTP_R13B03,它在R14B03中适用于我 .