如何为clojure、evil、hinting和paren突出显示设置emacs?
我对Emacs和Clojure都是全新的,我希望设置与视频类似的提示和语法突出显示。我已安装:如何为clojure、evil、hinting和paren突出显示设置emacs?,emacs,clojure,leiningen,code-hinting,evil-mode,Emacs,Clojure,Leiningen,Code Hinting,Evil Mode,我对Emacs和Clojure都是全新的,我希望设置与视频类似的提示和语法突出显示。我已安装: Emacs 24.x 莱宁根2.x 果酱 …然后在Emacs内并通过Marmalade安装以下软件包: 邪恶的 clojure模式 nrepl 我的大问题是这些主要/次要模式是如何相互作用的,是否有一种“正确”的方式来设置这些东西? 我的小问题是如何获得漂亮的语法突出显示和代码暗示? 谢谢 我列出了我的设置。有些东西是多余的,因为我没有 用Clojure写了一段时间,但我检查了一下,它仍然有效
- Emacs 24.x
- 莱宁根2.x
- 果酱
- 邪恶的
- clojure模式
- nrepl
我的小问题是如何获得漂亮的语法突出显示和代码暗示?
谢谢 我列出了我的设置。有些东西是多余的,因为我没有 用Clojure写了一段时间,但我检查了一下,它仍然有效
clojure
启动nrepl。
如果project.clj
位于适当的目录中,您可能会遇到一些问题,
但你应该弄清楚这一点foo.clj
nrepl加载文件
顺便说一下,这是将文件加载到进程中的规范快捷方式。
它将适用于通用Lisp、Python等(require 'clojure-mode)
(defun set-syntax-parens ()
"highlight []{} etc."
(interactive)
(modify-syntax-entry ?[ "(]")
(modify-syntax-entry ?] ")[")
(modify-syntax-entry ?{ "(}")
(modify-syntax-entry ?} "){"))
(defvar clojure.jars '("clojure-1.3.0.jar"
"swank-clojure-1.4.2.jar"
"clojure-contrib-1.2.0.jar"))
(defvar clojure.jars.d (concat dropbox.d "source/clojure/lib/"))
(defvar clojure.classpath
(apply #'concat
(mapcar (lambda (jar) (concat clojure.jars.d jar path-separator))
clojure.jars)))
(setq clojure.classpath
(concat clojure.classpath
dropbox.d "source/clojure/include/"
path-separator))
;;;###autoload
(defun clojure ()
(interactive)
(nrepl-jack-in))
(defvar clojure-server-cmd
(concat "java -Xss4096k -cp " clojure.classpath " clojure.main &"))
(add-hook 'clojure-mode-hook
(lambda()
(set-syntax-parens)))
(require 'nrepl)
(add-hook 'nrepl-mode-hook
(lambda()
(define-key nrepl-mode-map (kbd "C-l") 'nrepl-clear-buffer)))
以下是执行部分:
这在任何地方都可以使用,这需要一点习惯,尽管这完全值得,因为paredit和Clojure的使用更加有趣。至少一旦你掌握了关于咕噜咕噜和呕吐的知识请查看Emacs Live,它是由Sam Aaron创建的完整Emacs配置。他对Clojure的分配进行编码,因此这种“包含电池”的设置非常适合Clojure编码 一旦您克隆了它,请按照您启动并运行的说明进行操作
Clojure、nrepl、git等等 你想学Emacs吗?我只想指出,如果你是一个Vim用户(从邪恶中猜测),那么vimclojure static和fireplace分别是一个非常好的语法高亮显示和REPL交互。我认为自己是一个新手VIM用户,但我发现安装邪恶比用Emacs的快捷方式在Emacs教程中导航更为快捷。我同意Emacs学习曲线的其他方面,因为它似乎与Clojure更好地集成。仅供参考:视频中显示的设置可在此处获得:。您只需安装它,
lein repl
和M-x nrepl,然后就可以开始了。像这样手动添加clojure类路径做了什么?我必须这样做才能在当天添加contrib-1.2。您仍然可以使用此技术加载不是由lein
管理的内容。这是您的.emacs文件的内容吗?不是。它位于source/site lisp/modes/clojure.el
中。当调用clojure
时,它将自动加载。但是你可以把它放在~/.emacs
中,但不能放在邪恶中。我认为这是最难的部分。
(when (not package-archive-contents)
(package-refresh-contents))
;; Add in your own as you wish:
(defvar my-packages '(starter-kit starter-kit-lisp starter-kit-bindings clojure-mode
nrepl auto-complete ac-nrepl org rainbow-delimiters)
"A list of packages to ensure are installed at launch.")
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-install p)))
(require 'ac-nrepl)
(add-hook 'nrepl-mode-hook 'ac-nrepl-setup)
(add-hook 'nrepl-interaction-mode-hook 'ac-nrepl-setup)
(eval-after-load "auto-complete"
'(add-to-list 'ac-modes 'nrepl-mode))
(defun set-auto-complete-as-completion-at-point-function ()
(setq completion-at-point-functions '(auto-complete)))
(add-hook 'auto-complete-mode-hook 'set-auto-complete-as-completion-at-point-function)
(add-hook 'nrepl-mode-hook 'set-auto-complete-as-completion-at-point-function)
(add-hook 'nrepl-interaction-mode-hook 'set-auto-complete-as-completion-at-point-function)
(define-key nrepl-interaction-mode-map (kbd "C-c C-d") 'ac-nrepl-popup-doc)
(add-hook 'prog-mode-hook 'auto-complete-mode)
(add-hook 'nrepl-interaction-mode-hook
'nrepl-turn-on-eldoc-mode)
(add-hook 'nrepl-mode-hook 'paredit-mode)