2009-01-02 29 views
6

Tình huống: Tôi đã nhập một số hàm trong khi làm việc với REPL trong Emacs. Vấn đề: Có rác như "; Đánh giá bị hủy bỏ" khi tôi chỉ đơn giản là tiết kiệm bộ đệm. Những gì tôi muốn: mô tả rõ ràng về tất cả các chức năng tôi đã nhập trong bản sửa đổi mới nhất của họ.Làm thế nào để lưu tất cả các chức năng tôi đã nhập trong LispBox/Slime?

Tôi có thể làm điều đó không? Cảm ơn.

Trả lời

3

Tôi đồng ý rằng phương pháp luồng công việc tốt nhất là viết mã của bạn trong một bộ đệm riêng biệt và đánh giá trong đó, thay vì nhập các chức năng trong repl.

Giả sử bạn đã đi theo cách thay thế, tôi đoán, giải pháp của C. Martin để lưu nhật ký thay thế và theo cách thủ công, đó là các lựa chọn duy nhất của bạn.

Nếu bạn đã nhập các hàm và vars vào một gói riêng biệt, bạn có thể đi qua các biểu tượng trong gói để giúp bạn quyết định những gì bạn muốn giữ.

Ví dụ: để xem tất cả các biểu tượng được tạo trong gói người dùng cl:

(let ((p (find-package :cl-user))) 
    (loop 
    for s being the symbols in p 
    when (eq p (symbol-package s)) 
    do (format t "~a~%" s))) 
5

Tôi không hiểu. Bạn có đang nhập các định nghĩa tại REPL và mong muốn khôi phục chúng sau này không? Chỉ cần lưu một tệp nguồn như bạn làm bằng bất kỳ ngôn ngữ nào khác. Sử dụng C-x 2 để chia cửa sổ Emacs của bạn thành hai. Mở một tệp nguồn trong một trong số chúng C-x C-f foo.lisp. Sử dụng C-c C-k, C-c C-r và bạn bè (xem menu SLIME) để biên dịch/đánh giá các vùng mã nguồn của bạn trong REPL.

5

Tôi đã tìm kiếm một cái gì đó như thế này trong quá khứ và không thể tìm thấy nó. Tốt nhất bạn nên viết tất cả các định nghĩa trong một bộ đệm riêng và sử dụng các hàm đánh giá/biên dịch mở rộng của SLIME (Cc Ck tải toàn bộ tệp, Cx Ce đánh giá biểu thức cuối cùng, Cc Cr đánh giá một vùng, v.v.), chỉ nhập trực tiếp vào những điều REPL bạn không muốn lưu.

4

Um, C-x o hoặc C-x b để chuyển đến bộ đệm SLIME REPL, sau đó C-x w hoặc C-x C-s để lưu tệp vào một tệp. Tất cả các công cụ SLIME/CL là một bình luận của người đọc; bạn có thể viết trình đọc hack để tải lại tệp xử lý lời nhắc dưới dạng nhận xét hoặc bạn có thể tự mình duyệt tệp để nắm bắt các phần bạn muốn lưu.

+0

Tôi biết tôi đã nhận ra điều này. Tôi đoán tôi vẫn còn một đôi mắt to khi nói đến Emacs. Cảm ơn! – dogenpunk

Các vấn đề liên quan