2015-10-26 75 views

回答

1

所以,對我來說是最好的,simpliest的解決辦法是換行代碼接下來方式:

(format t "~{~a~%~}" (list 
    <code in file> 
    )) 

而且比我做的CX策在文件的結尾,並在REPL得到所有的結果我的表情一個接一個。謝謝大家。

UPD 我用網絡和這個回答:How to run Common Lisp code with Slime in Emacs Lisp來寫這兩個函數。 此代碼位於我的.emacs文件中。 現在我只需按'C-c e'或'C-c r'來評估所有文件或只選定區域。 已經絕對可以解決問題。

(require 'slime) 
(defun lispy--eval-lisp (str) 
    "Eval STR as Common Lisp code." 
    (unless (slime-current-connection) 
    (let ((wnd (current-window-configuration))) 
     (slime) 
     (while (not (and (slime-current-connection) 
         (get-buffer-window (slime-output-buffer)))) 
     (sit-for 0.2)) 
     (set-window-configuration wnd))) 
    (let (deactivate-mark) 
    (slime-eval `(swank:eval-and-grab-output ,str)))) 

(defun feval() 
    "Evaluates the whole file" 
    (interactive) 
    (message (car (lispy--eval-lisp 
     (concat "(format t \"~{~a~%~}\" (list " (string-make-unibyte (buffer-string)) "))"))))) 
(defun reval (from to) 
    (interactive "r") 
    (message (car (lispy--eval-lisp 
     (concat "(format t \"~{~a~%~}\" (list " (string-make-unibyte (buffer-substring from to)) "))"))))) 

(global-set-key "\C-ce" 'feval) 
(global-set-key "\C-cr" 'reval) 
0

基本上這取決於您的Emacs設置:

但把光標放在表情的最後家長後;

CX策評估日的表情,並將結果發送到小緩衝區,如果將結果保存在一個變量,如果你想在編譯和加載功能檢查這個varibable可以用REPL SESSION

CC CC,在函數的最後一層,那麼函數將可在REPL

最後檢查在Emacs菜單欄中的煤泥菜單,如果你有它啓用F10:

enter image description here

並編譯和加載文件:

enter image description here

,並有來自marco Baringer YouTube上提供一個很好的教程,我建議把你的時間做這件事,是一個很好的(在最好的我意見)介紹emacs和煤泥。

+0

好的,謝謝,但它實際上並不是我想要做的。我已經學會了如何編譯和加載文件。但是沒有執行加載文件的輸出。在使用C-C C-K編譯文件後,我得到了.fasl文件,當我用例如(加載「C:\\ my.fasl」)加載這個文件時,我只是在控制檯中看到了'T'。我沒有看到我想要的輸出。 –

0

您可以定義您自己的Emacs-Lisp函數,其中包括在list之內的區域中的窗體中,評估此列表並打印所有結果。 這是我手動執行的確切操作,如果我需要查看多個表單的結果,這很少。

否則,我只是在每個表格上使用C-x e

+0

複製粘貼到REPL也沒有給出合適的結果:(我只看到最後一個表達式的結果(在我的例子中是「5」)。 你能給我一個想法如何編寫這樣的函數嗎?與有用的鏈接) Cx e是好的,但我想先寫代碼,然後通過評估所有的代碼來檢查它。對我來說似乎更好。 –

+0

@ИльяМурадьян對不起,你是對的,我忘了。當我有更多時間時,我會編輯帖子;-) – coredump

+0

那麼,函數呢?我想,它應該是像 '(mapcar'eval(列表<所有帶引號的表達式>))''。但是,我應該如何得到這個引用列表,我應該在哪裏定義這個函數,最終,我應該如何使用它? –