2010-11-27 5 views
11

Có cách nào để mở rộng lệnh hiện tại tại Clojure repl như tôi có thể làm trong Common Lisp không?Làm thế nào để tự động mở rộng hoặc tự động hoàn thành các chức năng và biến trong Clojure repl

Ví dụ nói rằng tôi đã gõ:

Math/ 

Tôi muốn phím tab để mở rộng cho tất cả các biến có sẵn và chức năng trong không gian tên đó.

Tôi đang sử dụng Clojure như lisp kém hơn muốn biết làm thế nào để làm điều này từ vani trơn thay thế Clojure, và thông qua chất nhờn.

Trả lời

19

Một phiếu bầu khác ủng hộ chế độ clojure và chất nhờn dưới Emacs. Đặc biệt, nếu bạn thiết lập auto-complete, thì bạn có thể sử dụng gói ac-slime của mình để hoàn tất tab ngữ cảnh trong danh sách thả xuống. Đây là screencast showing it in action.

Và, thêm vào nhận xét của công nghệ về hippie-expand, here's how to tie slime completion into hippie-expand.

Cập nhật: tính đến năm 2012, nrepl, nrepl.elac-nrepl đang thay thế chất nhờn và chất nhờn; cùng chức năng, codebase nhỏ hơn và sạch hơn.

Update2: vào thời điểm tháng 10 năm 2013 nrepl.el được đổi tên thành cider và nó và ac-nrepl đã chuyển đến clojure-emacs tổ chức trên github. nrepl vẫn là thành phần máy chủ

+0

Vẫn là cách hiệu quả nhất khi sử dụng bản replay vào giữa năm 2012, hiện tại với Emacs24. –

3

Bạn đã thử chế độ Clojure cho Emacs? Nó có tính năng tự động hoàn thành (các gợi ý được hiển thị trong cửa sổ mới và nếu chỉ có một tùy chọn có thể, nó được sử dụng để mở rộng tên), đánh dấu và nhiều tính năng đẹp khác (không nhiều hơn cho CL, nhưng cũng không kém).

Có sẵn qua ELPA. Sau installing ELPA nhập M-x package-list-packages, đặt con trỏ gần gói cần thiết và nhấn i (các gói đã cài đặt có màu đỏ). Bạn sẽ cần gói clojure-mode, slime, slime-replswank-clojure. Khi bạn đã hoàn tất với i -marks, hãy nhấn x để hoàn tất cài đặt. Cuối cùng, nhấn M-x slime - Emacs sẽ cho biết, Clojure chưa được cài đặt và đề xuất tải xuống và sử dụng phiên bản mới nhất. Chỉ cần đồng ý.

Bạn cũng có thể integrate Emacs với Leiningen.

2

Vani thay thế trong Clojure khá bị tê liệt; nó thậm chí không có lịch sử. Tránh nó cho bất cứ điều gì, nhưng nguyên thủy nhất của nhiệm vụ. Tôi không nghĩ rằng bạn có thể nhận được điều này trong kém lisp-lisp, nhưng trong chất nhờn repl bạn chỉ có thể sử dụng TAB để hoàn thành những thứ như thế này. Trong bộ đệm chế độ clojure với chất nhờn kích hoạt nó M-TAB, hoặc bạn có thể buộc nó vào chức năng hippie-mở rộng của bạn.