10

私は Windows 7 で emacs 24 を使用しており、テクノマンシーの clojure-modeと paredit 23 beta をインストールしました。leiningen プロジェクトからソース ファイルを読み込み、clojure-jack-in を使用して repl を取得します。問題は、Clojure モードと repl の両方で paredit が有効になっているにもかかわらず、中括弧がソース ファイルの repl でのみ一致しないことです。

repl の中括弧にも一致させるにはどうすればよいですか?

4

2 に答える 2

6

私は自分の .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-22T11:06:35.423 に答える
1

Phil Hagelberg のdurendal パッケージを入手して、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 は swank-clojure 自体に durendal の機能を追加の Lisp ペイロードとして含める可能性があり、その時点で上記は不要になります。

于 2011-12-22T16:54:30.113 に答える