【问题标题】:Erlang emacs mode - setting outdirErlang emacs 模式 - 设置 outdir
【发布时间】:2011-05-26 13:45:39
【问题描述】:

有谁知道如何配置 Erlang emacs 模式,以便编译缓冲区 [C-c C-k] 将梁文件写入 ebin 目录而不是当前目录?

谢谢!

【问题讨论】:

    标签: emacs erlang


    【解决方案1】:

    你可能想看看 Erlang Questions Mailing List 上的这个帖子:

    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

    【讨论】:

      【解决方案2】:

      如果您像这样设置目录结构:

      /
      /src/
      /ebin/
      

      并将您的模块(例如“my_file.erl”)放在“/src/”目录中,然后编译它(C-c C-k),然后 Emacs 应该自动将梁放入“/ebin/”目录。

      但是,如果您的模块不在名为“/src/”的目录中(或者如果“ebin”目录丢失),则梁将与源文件一起被丢弃。

      要确切了解其工作原理,请查看$ERL_TOP/lib/tools/emacs/erlang.el 并搜索“ebin”。您会发现以下内容:

      (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 中对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-27
        • 2013-04-07
        • 2011-02-16
        • 2011-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多