gpt4 book ai didi

emacs - 如何为 Clojure 开发设置 Aquamacs?

转载 作者:行者123 更新时间:2023-12-03 08:58:42 27 4
gpt4 key购买 nike

我曾多次尝试迁移到 Emacs 以进行 Clojure 开发,遵循各种博文、截屏视频和教程,但在此过程中总是出现问题——键绑定(bind)不起作用、版本不兼容等,我发现自己争先恐后地回到 Vim。但我知道我想要 Paredit 和 SLIME。

所以,我要再试一次,这一次得到了强大的 Stack Overflow™ 社区的支持。

我希望这个问题的答案将保持最新,并且可以作为像我这样的暂定皈依者的引用。

我想要的是:

  • Clojure 的最新稳定版本
  • Aquamacs(如果它对 Rich Hickey 来说足够好,那对我来说也足够好了),最新版本
  • Clojure 模式
  • 史莱姆/SWANK
  • 编辑
  • 还有什么不可缺少的吗?

  • 安装上述内容的分步说明会非常好 - 最好是 shell 脚本格式。我还想要一些关于如何开始使用最常见的 Clojure 相关操作(包括键绑定(bind))的提示,包括指向文档和备忘单的链接。

    最佳答案

    这些是我在不使用 ELPA 的情况下设置它们的步骤。希望这可以帮助。

    使用 MacPorts 获取 SLIME

    sudo port -v install slime

    得到paredit
    curl -O http://mumble.net/~campbell/emacs/paredit.el

    获取 clojure 和 clojure-contrib
  • 使用 MacPorts
  • sudo port -v install clojure clojure-contrib
    • Or downloading directly
    curl -O http://build.clojure.org/snapshots/org/clojure/clojure/1.1.0-master-SNAPSHOT/clojure-1.1.0-master-20091202.150145-1.jarcurl -O http://build.clojure.org/snapshots/org/clojure/clojure-contrib/1.1.0-master-SNAPSHOT/clojure-contrib-1.1.0-master-20091212.205045-1.jar

    Get clojure-mode and swank-clojure (Emacs side)

    git clone http://github.com/technomancy/clojure-mode.git
    git clone http://github.com/technomancy/swank-clojure.git

    获取 swank-clojure(Clojure 方面)
  • 下载预建的 jar 文件

  • curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
  • 或者从源代码构建(假设安装了 lein)

  • cd 路径/到/dir/swank-clojure
    莱因 jar

    将 clojure、clojure-contrib 和 swank-clojure .jar 文件放入 ~/.swank-clojure 或 ~/.clojure(swank-clojure.el 搜索它们的默认位置)。

    添加到 ~/.emacs 或 ~/Library/Preferences/Aquamacs Emacs/customization.el(更改路径以匹配您自己的设置)

    (添加到列表'加载路径“/opt/local/share/emacs/site-lisp/slime/”)
    (添加到列表'加载路径“/opt/local/share/emacs/site-lisp/slime/contrib/”)
    ;;更改这些路径以匹配您的设置
    (添加到列表'加载路径“路径/到/目录/clojure-mode/”)
    (添加到列表'加载路径“路径/到/目录/swank-clojure/”)
    (添加到列表'加载路径“路径/到/目录/paredit/”)

    ;;自定义 swank-clojure 启动以反射(reflect)可能的类路径更改
    ;; M-x ielm `slime-lisp-implementations RET 或查看 `swank-clojure.el' 了解更多信息
    (defadvice slime-read-interactive-args (在 add-clojure 之前)
    (需要'关联)
    (aput 'slime-lisp-implementations 'clojure
    (列表(swank-clojure-cmd):init 'swank-clojure-init)))

    (需要'粘液)
    (需要'paredit)
    (需要'clojure-mode)
    (需要'swank-clojure)

    (加载后评估“粘液”
    '(预测
    ;; “额外”功能(贡献)
    (粘液设置
    '(slime-repl slime-banner slime-highlight-edits slime-fuzzy))
    (setq
    ;;使用 UTF-8 编码
    粘液网络编码系统'utf-8-unix
    ;;使用模糊完成(M-Tab)
    slime-complete-symbol-function 'slime-fuzzy-complete-symbol)
    ;;使用括号编辑模式 paredit
    (defun paredit-mode-enable () (paredit-mode 1))
    (add-hook 'slime-mode-hook 'paredit-mode-enable)
    (add-hook 'slime-repl-mode-hook 'paredit-mode-enable)))

    ;;默认情况下,输入和结果具有相同的颜色
    ;;自定义结果颜色以区分它们
    ;;如果您想进一步自定义,请在 `slime-repl.el' 中查找 `defface'
    (自定义设置面
    '(slime-repl-result-face ((t (:foreground "LightGreen")))))

    (加载后评估“swank-clojure”
    '(预测
    ;;让 REPL 对 Clojure 更友好(ELPA 不包括这个?)
    ;;该函数在 swank-clojure.el 中定义但未使用?!?
    (add-hook 'slime-repl-mode-hook
    'swank-clojure-slime-repl-modify-syntax t)
    ;;为 Incanter 添加类路径(只是一个示例)
    ;;设置类路径的首选方法是使用 swank-clojure-project
    (添加到列表 'swank-clojure-classpath
    “路径/到/incanter/modules/incanter-app/target/*”)))

    关于emacs - 如何为 Clojure 开发设置 Aquamacs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2120533/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com