Biểu mẫu (ns ...) được ưu tiên vì mã của bạn sẽ dễ đọc hơn. Tất cả các khai báo không gian tên sẽ được thu thập ở đầu tệp. xem điều này được thực thi bởi trình biên dịch bằng các ngôn ngữ như Java. Ngoài ra, các macro có chứa macro sẽ loại bỏ sự cần thiết cho bạn để trích dẫn các ký hiệu.Điều này có thể được sử dụng, nhập, tham chiếu, v.v.
Tôi nghĩ rằng C-x C-e
slime short-cut sẽ gửi đoạn mã đến máy chủ swank được kết nối và được đánh giá. Ví dụ: biểu mẫu:
(ns my.test
(:require [clojure.contrib.logging :as log])
(:import [java.io File]))
sẽ tạo một không gian tên mới có tên my.test bao gồm ghi nhật ký và tệp java.io. Nó sẽ không thay đổi không gian tên của repl. Để thực hiện điều đó, hãy nhấn C-c M-p
từ tệp bạn đang chỉnh sửa và bạn sẽ được nhắc với tên của không gian tên của tệp đó để chuyển sang (trừ khi bạn đã ở trong không gian tên đó). Nhấn enter để chọn.C-c C-z
nên chuyển sang chế độ repl. Bây giờ thay vì lời nhắc user=>
, bạn sẽ thấy my.test=>
, cho biết rằng bạn đang ở trong không gian tên đó.
Các quy trình làm việc tôi đã thiết lập là để biên dịch toàn bộ tập tin trên tiết kiệm, sử dụng:
(defun ed/clojure-compile-on-save (&optional args)
"Compile with slime on save"
(interactive)
(if (and (eq major-mode 'clojure-mode)
(slime-connected-p))
(slime-compile-and-load-file)))
(add-hook 'after-save-hook 'ed/clojure-compile-on-save)
Bằng cách đó, khi bao giờ tôi lưu các tập tin, nó được biên soạn và nạp bởi máy chủ phô trương, và Tôi sử dụng repl cho các thí nghiệm trong không gian tên mà tôi đang làm việc.
Điểm bullet cuối cùng của bạn không rõ ràng đối với tôi. Bạn đang nhấn ',' bên trong tệp bạn đang làm việc? Nó sẽ không đơn giản chỉ cần chèn một dấu phẩy và một 'i'? – ftravers
Khi con trỏ của bạn nằm trong bộ đệm Slime REPL, trước khi gõ bất cứ điều gì khác vào dấu nhắc của bạn, hãy nhập một ','. Điều này sẽ làm cho văn bản 'Command:' xuất hiện trong bộ đệm mini. Bây giờ ngay lập tức gõ 'i', và bạn sẽ thấy văn bản' Package: 'xuất hiện trong bộ đệm mini. Bây giờ bắt đầu gõ tên của gói của bạn, sử dụng tab-hoàn thành như mong muốn, cho đến khi tên đầy đủ của không gian tên của bạn nằm trong bộ đệm mini. Nhấn 'ENTER' và Slime REPL của bạn bây giờ sẽ nằm trong vùng tên đích của bạn. – semperos