2013-02-18 139 views
4

我有一個相當標準的Quil文件,我正在用Emacs和nrepl進行編輯。如何使用Emacs/nrepl/Quil在Clojure中生活代碼?

(defn setup [] 
    (qc/smooth) 
    (qc/frame-rate 24) 
    (qc/background 200)) 

(defn draw [] 
    (draw-world)) 

(qc/defsketch run 
    :title "Circles!" 
    :setup setup 
    :draw draw 
    :size [800 600] 
    :renderer :opengl) 

首先,我使用C-c C-l加載文件;這會創建一個草圖窗口。然後,我編輯我的draw-world函數,例如,繪製不同的顏色。我的問題是:

如何使用這個新功能更新當前的Quil窗口?

* C-x C-e似乎不起作用。

回答

5

嘗試C-M-X(這evals當前頂層形式)要更改或功能C-C C-K(這evals當前緩衝區)在源緩衝器。順便說一句,C-x C-e也應該工作(它肯定適用於我,但我很少使用它)。也許你沒有使用nrepl.el的最新版本?

+0

不幸的是,所有這些似乎創建一個新的窗口,當我運行它們。 (我正在使用最新的Github nrepl.el) – sdasdadas 2013-02-19 06:42:51

+0

我想你的配置有誤,因爲它們都適合我。 – 2013-02-19 09:27:47

+0

這是正確的答案,我的代碼中的錯誤似乎阻止了正常工作。謝謝! – sdasdadas 2013-02-19 17:02:50

1

我剛剛設置了一個示例項目來處理我在Quil中進行實時編碼的工作流程。我從幾個地方複製了一些基礎知識,例如Quil wiki和論壇。

如果你看一下項目的基本core.clj文件,你會看到它需要單獨的「畫」和「設置」命名空間:

(ns basic-metronome.core 
    (:use [basic-metronome.setup :only [HEIGHT WIDTH]]) 
    (:require [basic-metronome.draw :as dynamic-draw] 
      [basic-metronome.setup :as dynamic-setup] 
      [quil.core :as qc])) 

(defn run-sketch [] 
    (qc/defsketch the-sketch 
    :title "Hello Metronome" 
    :setup dynamic-setup/setup 
    :draw dynamic-draw/draw 
    :size [WIDTH HEIGHT])) 

來源: https://github.com/mudphone/basic_quil_metronome/blob/master/src/basic_metronome/core.clj

在這樣,我可以重新評估C-c C-k draw.clj文件,而無需重新評估頂級核心命名空間(這可能會導致問題,例如,您描述您看到新窗口的位置)。

+1

謝謝,這對於用泥漿製成的手機來說非常明顯。 – sdasdadas 2013-05-24 21:01:20

+1

很高興聽到它。它爲我實現了更簡單的實時編碼。 – mudphone 2013-05-25 07:07:43