2008-09-18 32 views
83

Tôi đã sử dụng và tắt Lisp một lúc nhưng tôi bắt đầu trở nên nghiêm túc hơn về việc thực hiện một số công việc "thực sự" trong Lisp. Tôi là một fan hâm mộ lớn của Vim và đã tự hỏi làm thế nào tôi có thể làm việc hiệu quả nhất bằng cách sử dụng Vim làm biên tập viên của tôi để phát triển Lisp. Plugin, đề xuất luồng công việc, v.v. đều được chào đón.Sử dụng Vim để phát triển Lisp

Xin vui lòng không nói "sử dụng emacs" như tôi đã tăng lên trên Vim và tôi thực sự thích nó như là một biên tập viên.

+0

Lisp, Common Lisp? – Pablo

+0

Trong trường hợp này, có, Common Lisp. Tôi làm một số đồ chơi xung quanh trong Đề án là tốt, nhưng đó là nhiều hơn cho lập trình thám hiểm bình thường. –

Trả lời

50

Limp nhằm mục đích trở thành một IDE Lisp chung đầy đủ tính năng cho Vim.Nó mặc định là SBCL, nhưng có thể được thay đổi để hỗ trợ hầu hết các triển khai khác bằng cách thay thế "sbcl" cho lisp yêu thích của bạn, trong tệp /usr/local/limp/latest/bin/lisp.sh

Khi thảo luận về Lisp những ngày này , nó thường được giả định là Common Lisp, ngôn ngữ được chuẩn hóa bởi ANSI X3J13 (xem the HyperSpecPractical Common Lisp cho sách giáo khoa tốt) với các triển khai như GNU Clisp, SBCL, CMUCL, AllegroCL và nhiều ngôn ngữ khác.

Quay lại Limp. Có những giải pháp khác có trọng lượng nhẹ hơn, hoặc cố gắng làm những việc khác, nhưng tôi tin rằng trong việc cung cấp một môi trường mang lại cho bạn những thứ như kết hợp khung, tô sáng, tra cứu tài liệu, tức là biến nó thành giải pháp chìa khóa nhiều nhất có thể .

Trong the Limp repository bạn sẽ tìm thấy một số công việc trước đây của dự án SlimVim, cụ thể là giao diện ECL (Embeddable Common Lisp), được hợp nhất với các phiên bản sau (7.1); Simon cũng đã thực hiện các bản vá lỗi đến 7,2 có sẵn chưa được sáp nhập. Giao diện ECL được ghi lại trong if_ecl.txt.

Công việc ngắn hạn là phải thực hiện việc hợp nhất với 7.2 và gửi một bản vá cho vim_dev để làm cho nó được hợp nhất vào cây Vim chính thức.

Điều này dẫn chúng ta đến các kế hoạch dài hạn: có Lisp trực tiếp trong Vim sẽ thuận tiện để bắt đầu làm việc trên front-end SWANK (một phần của SLIME chạy trong Lisp của bạn, với slime.el là phần chạy trong trình chỉnh sửa - giao diện người dùng). Và một nơi nào đó ở giữa, có thể tất cả các Limp sẽ được viết lại trong Common Lisp bằng giao diện ECL, làm cho LIM dễ bảo trì hơn (VimScript không phải là yêu thích của tôi) và dễ dàng hơn cho người dùng tùy chỉnh.

Các official Limp site đi xuống bất cứ lúc nào, nhưng như đã chỉ ra, các download at Vim.org nên luôn luôn làm việc, và các nhóm hỗ trợ limp-devellimp-user được lưu trữ với Google Groups. Đừng ngần ngại tham gia nếu bạn cảm thấy bạn cần một câu hỏi được trả lời, hoặc thậm chí có thể muốn tham gia vào phát triển. Hầu hết các cuộc thảo luận diễn ra trên danh sách limp-devel. Nếu bạn vào IRC, tôi đang ở #limp trên irc.freenode.net với tên 'tic'.

Chúc may mắn!

+3

Trạng thái của tác phẩm này là gì? Bạn vẫn muốn làm việc với nó? –

+3

Tôi đang bối rối. Câu trả lời "" có vẻ giống như một gợi ý về một vài tùy chọn, chẳng hạn như sử dụng LIMP, nhưng không giải thích được cách thực hiện điều này. Tôi nghĩ rằng câu hỏi là, làm thế nào để tôi sử dụng Vim với SBCL/bất cứ điều gì. Điều này không thực sự trả lời câu hỏi, vì vậy tôi là một chút bối rối bởi tất cả các upvotes. Bạn có muốn đi sâu vào một chi tiết nhỏ về cách thiết lập môi trường này và bắt đầu không? – jpswain

+0

Có vẻ như LIMP không còn được duy trì nữa: trang web đã ngừng hoạt động và thay đổi cuối cùng là vào năm 2008. – kynan

3

Bạn có thể cung cấp cho Emacs với Vim thi đua thử, không phải là hoàn hảo, nhưng nó có thể hơi quen thuộc. Tôi nghĩ rằng Lisp tỏa sáng nếu bạn sử dụng một cái gì đó như Slime hoặc DrScheme làm phát triển lặp đi lặp lại, tất cả các biên tập viên khác cảm thấy chỉ là sai.

5

: set lisp

Vim có một chế độ để giúp bạn thụt mã của bạn theo tiêu chuẩn Lisp.

Ngoài ra, tôi sửa đổi các lispwords để thay đổi cách thức vim thụt lề mã của tôi.

: setl lw- = if (trong ~/.vim/ftplugin/lisp.vim)

+1

thụt lề dễ dàng. Việc cung cấp một IDE tốt là quan trọng hơn nhiều. Trên thực tế VIM thậm chí sẽ không làm điều đó (thụt đầu dòng) cũng như Emacs/SLIME. –

1

Tôi biết bạn nói không để cho bạn biết sử dụng Emacs.

Sử dụng Emacs.

Nghiêm trọng, thiết lập SLIME cho Emacs là khá nhiều nền tảng phát triển chuẩn cho cho Lisp và vì lý do rất tốt.

+4

Tôi vẫn đứng trước câu trả lời này, mặc dù mọi người vẫn bỏ phiếu cho đến tháng 4 năm 2011. Tôi thích Vim và sử dụng nó hàng ngày, nhưng không có gì giống như lập trình Lisp trong môi trường viết bằng Lisp. "Tôi ước tôi có thể làm cho biên tập viên của tôi phản ứng với những gì xảy ra trong máy chủ Lisp của tôi. Ồ, chờ đã! Tôi có thể!" là một cảm giác tuyệt vời. Một lần nữa: tôi * thích * Vim, nhưng ý kiến ​​của tôi là Emacs là một trình soạn thảo tốt hơn để làm việc với * Lisp *. –

+0

Theo dõi: 6 năm sau và y'all vẫn đang bỏ phiếu cho câu trả lời gần một thập kỷ này? OK, chúng ta hiểu rồi, chúng ta hiểu rồi! Tôi vẫn không thay đổi nó. –

8

SLIME cho EMACS là một công cụ tuyệt vời để lập trình LISP. Phần tốt nhất là gửi mã được viết trong trình soạn thảo của bạn thẳng đến phiên LISP trực tiếp. Bạn có thể nhận hành vi tương tự ra khỏi Vim sử dụng các mẹo ở đây:

http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/

tôi điều chỉnh kịch bản của riêng tôi để tôi có thể gửi đến hoặc là một phiên SBCL hoặc Clojure. Nó làm cho bạn hiệu quả hơn nhiều và tận dụng lợi thế của REPL.

": set lisp" bắt đầu chế độ thụt lề lisp cho Vim. Nhưng nó sẽ không hoạt động với một số phương ngữ như Clojure. Đối với Clojure, hãy sử dụng VimClojure.

Một số người thích LIMP cũng vậy.

20

Đây là biểu đồ mát mẻ theo số Xach tổng hợp tình hình hiện tại.

diagram explaining that there are nearly no VIM users that are also Lisp programmers and can also hack it to make it a good Lisp IDE... lousy alt text :)

+56

Thật ngớ ngẩn. Bạn không cần C để tùy chỉnh Vim. Vim có thể viết được ra khỏi hộp bằng ngôn ngữ riêng của nó, và hầu hết các bản dựng đều hỗ trợ kịch bản lệnh Ruby và Python. –

+6

Vì vậy, người dùng VIM muốn sử dụng VIM cho Common Lisp là cốt lõi của tất cả người dùng VIM? Có lẽ tôi đang thiếu một cái gì đó ở đây ... –

+42

Bạn đang thiếu cách biểu đồ Venn hoạt động. –

2

Dường như có được nỗ lực có một hội nhập SLIME giống như của Lisp trong Vim, nhưng không ai đã thực sự đi xa như cần thiết để được thực sự hữu ích. Tôi nghĩ rằng sự tích hợp của ECL đã được thực hiện, tuy nhiên, nhưng không cam kết ngược dòng.

Bạn nên tìm tất cả các liên kết có liên quan từ Cliki's page about Vim.

5
  • Vim add-ons: Cầu vồng ngoặc, Lisp cú pháp
  • SBCL add-ons: rlwrap, sb-aclrepl
  • Workflow: Ion3 (hoặc một số lát gạch WM khác) với nhiều cửa sổ terminal.

    • Sửa Lisp trong Vim
    • Chuyển đến cửa sổ Lisp (sử dụng bàn phím dĩ nhiên)
    • Sử dụng C-r để nhớ lại dòng để tải lại hệ thống asdf trong câu hỏi để thay đổi của bạn trở nên năng động.
    • Sử dụng sao chép/dán cửa sổ X cho các đoạn trích/thay đổi nhỏ.
    • Sử dụng DESCRIBE, TRACE và APROPOS nhiều.
    • Lặp lại.
26

Bạn có thể cung cấp slimv giờ nghỉ.

+0

+1 Chỉ cần bắt đầu với slimv vì vậy hầu như không có kiến ​​thức về nó, nhưng nó có vẻ hoạt động hoàn toàn tốt hộp như là một thay thế thực sự để chất nhờn cho emacs. Ngoài ra nó có bản phát hành gần đây (v0.9.2 07-nov-2011) trong khi khập khiễng không có bản cập nhật kể từ năm 2008. – jmsu

+2

Được sử dụng slimv trong một thời gian; nó là tuyệt vời. Không có gì khác so sánh trong không gian. – tempire

2

Ở đây chúng tôi là 9 năm sau, và bây giờ chúng tôi có Vim 8 và Neovim, cả hai đều cung cấp khả năng tương tác với các plugin không đồng bộ.

vlime là một plugin giàu tính năng tuyệt vời tận dụng giao diện không đồng bộ mới để cung cấp môi trường dev giống như SLIME cho Common Lisp.

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