12

私は git (0.1.6-preview、el-get レシピ経由) から nrepl.el を使用しており、フォーム、トップレベル フォーム、およびリージョンにそれぞれ Cx Ce、CMx、Cc Cr という clojure バッファー evals が必要です。結果がエコー領域に返されてオフスクリーンで評価されるデフォルトの動作ではなく、自分自身を nrepl バッファーに送信してそこで評価します。

これを行う方法はありますか、または説明で認識していないこの目的のための別のキーバインドのセットはありますか?

ありがとう。

4

3 に答える 3

12

あなたが説明した動作は、現在 nrepl.el ではサポートされていません。

しかし、良いニュースは、あなたが emacs ランドにいるということです。そのため、独自のカスタム ハンドラーを作成して、出力を nrepl バッファーに送信し、必要に応じてキー バインドを調整することができるはずです。

たとえば、これは Cx Ce と同等ですが、評価の結果をミニバッファーではなく repl バッファーに送信します。

(defun my-interactive-eval-to-repl (form)
  (let ((buffer nrepl-nrepl-buffer))
  (nrepl-send-string form (nrepl-handler buffer) nrepl-buffer-ns)))

(defun my-eval-last-expression-to-repl ()
  (interactive)
  (my-interactive-eval-to-repl (nrepl-last-expression)))
于 2012-10-28T03:20:58.467 に答える
0

ここで提供されているソリューションはどれも私が持っているバージョンでは機能しないため、独自の実装を考え出しました:

(defun eval-in-nrepl ()
  (interactive)
  (let ((exp (nrepl-last-expression)))
    (with-current-buffer (nrepl-current-repl-buffer)
      (nrepl-replace-input exp)
      (nrepl-return))))

(eval-after-load 'nrepl
  '(define-key nrepl-interaction-mode-map
     (kbd "C-x C-.")
     'eval-in-nrepl))

Cx C- に結合します。望ましい動作に。

于 2013-12-26T17:19:05.347 に答える