2

私は Emacs と Clojure の両方にまったく慣れていないので、ヒントと構文の強調表示を、こちらのビデオに似た方法で設定したいと考えています。私はインストールしました:

  • Emacs 24.x
  • ライニンゲン 2.x
  • マーマレード

...次に、Emacs 内および Marmalade 経由で、次のパッケージをインストールしました。

  • 悪の
  • clojureモード
  • nrepl

私の大きな考えの質問は、これらのメジャー/マイナー モードがどのように相互作用し、これらを設定する「正しい」方法があるかということです。
私の小さなアイデアの質問は、きれいな構文の強調表示とコードヒントを取得するにはどうすればよいですか? ありがとう!

4

3 に答える 3

1

私のセットアップをリストします。しばらく Clojure で書いていなかったので、冗長な部分もありますが、確認したところ、まだ動作します。

  1. clojurenrepl を開始するために使用します。project.clj適切なディレクトリにいることに問題があるかもしれませんが、これを理解する必要があります。
  2. ソースファイルを開きますfoo.clj
  3. C-c C-l呼び出しに使用nrepl-load-file ちなみに、ファイルを下位プロセスにロードするのが標準的なショートカットです。Common Lisp、Python などで動作します。
  4. を使用C-c C-zして、repl に切り替えます。これも、多くの言語で機能する正規のショートカットです。

セットアップコードは次のとおりです。

(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)))
于 2013-08-08T15:31:29.533 に答える