我在Windows7上使用emacs 24,并且已经安装了technomancy's clojure-mode和paredit 23测试版。我从我的leiningen项目加载源文件,并使用clojure-jack-in获得一个repl。问题是,虽然在Clojure模式和repl中都启用了paredit,但大括号并不只在源文件中的repl中匹配。
我怎么才能让它与repl中的花括号匹配呢?
发布于 2011-12-22 19:06:35
我在我的.emacs文件中添加了以下代码,这对我来说很有用(这不是我自己发明的,它是我在网上某个地方找到的一个代码片段--但我不记得在哪里了):
(defun setup-slime-repl-paredit ()
(define-key slime-repl-mode-map
(kbd "DEL") 'paredit-backward-delete)
(define-key slime-repl-mode-map
(kbd "{") 'paredit-open-curly)
(define-key slime-repl-mode-map
(kbd "}") 'paredit-close-curly)
(modify-syntax-entry ?\{ "(}")
(modify-syntax-entry ?\} "){")
(modify-syntax-entry ?\[ "(]")
(modify-syntax-entry ?\] ")[")
(modify-syntax-entry ?~ "' ")
(modify-syntax-entry ?, " ")
(modify-syntax-entry ?^ "'")
(modify-syntax-entry ?= "'"))
(add-hook 'slime-repl-mode-hook 'setup-slime-repl-paredit)
(add-hook 'slime-repl-mode-hook 'enable-paredit-mode)发布于 2011-12-23 00:54:30
获取Phil Hagelberg的durendal package,它为slime提供了一些特定于clojure的增强,然后尝试以下代码片段:
(require 'durendal)
(durendal-enable t)
(defun slime-clojure-repl-setup ()
(when (string-equal (slime-lisp-implementation-name) "clojure")
(set-syntax-table clojure-mode-syntax-table)
(setq lisp-indent-function 'clojure-indent-function)))
(add-hook 'slime-repl-mode-hook 'slime-clojure-repl-setup)将来,Phil可能会将durendal的功能包含在swank-clojure本身中,作为额外的lisp有效负载,在这一点上,上面的内容将变得不必要。
https://stackoverflow.com/questions/8598116
复制相似问题