أي ما يعادل "لين سوينك" لتطبيقات LISP/المخطط الأخرى مع EMACs/Slime

StackOverflow https://stackoverflow.com/questions/3548169

سؤال

لقد كنت أستخدم Emacs/Slime لترميز Lisp ، لكن مع clojure وجدت "Lein Swank". يجب أن أقول إنه مفيد إلى حد كبير ، حيث يمكنني الاتصال بخادم يعمل على تشغيل clojure.

ماذا عن تطبيقات LISP الأخرى؟ ما هي تطبيقات LISP التي توفر ما يعادل "Lein Swank" في Clojure؟ أعني ، هل هناك أي تطبيقات LISP أخرى توفر اتصال الخادم بحيث أستخدم "MX Slime-Connect" ، وليس فقط "MX Slime"؟

هل كانت مفيدة؟

المحلول

لا تحتاج خلاف Swank غير المتواصل إلى مكافئ Lein Swank حيث يمكنهم فقط إطلاق مثيل LISP وتغيير مسار التحميل في وقت التشغيل لجعله يعمل في مشروع معين. لا يعمل هذا النهج مع Clojure حيث لا يمكن تعديل ClassPath في JVM في وقت التشغيل.

نصائح أخرى

لا أعرف عن Clisp ، لكن هذا ما لدي لـ SBCL. هذا يتعايش مع إعداد swank clojure كذلك. لا أستخدم ELPA وبدلاً من ذلك لدي إعداد يدوي تمامًا.

(add-to-list 'load-path "~/src/slime")
(require 'slime)
(add-to-list 'slime-lisp-implementations '(sbcl ("/usr/local/bin/sbcl")))
(setq slime-default-lisp 'sbcl)

لدي يد SBCL. أرى الواجهة الخلفية لـ Swank لـ Clisp في قاعدة CVS Slime CVS ، لذلك أعتقد ، أن تغيير الوحل-الانفجار والخلط الوحل على الأرجح سيعمل فقط.

يوجد Lein Swank بشكل أساسي لبدء منفذ Swank في مشروع معين. هذا مطلوب لأنه لا يمكن تعديل JVM ClassPaths في وقت التشغيل. لذلك ، نبدأ Java مع ClassPaths التي تم تعيينها على أدلة وتبعيات المشروع لدينا باستخدام Lein Swank أو Swank-Clojure-project. مع CL ، هذا ليس ضروريًا ، حيث يمكن تعديل أسماء المسارات أثناء وقت التشغيل.

لقد نشرت ملف التكوين الكامل على: http://github.com/vu3rdd/dotfiles

سأكون سعيدًا للمساعدة في إعداد إعداد Emacs/Slime/Swank يدويًا بالكامل.

يمكنك تحميل Swank يدويًا في CL وبدء الخادم (تم إنشاء Slime/Swank لـ CL بعد كل شيء).

قم بإطلاق تنفيذ LISP ، تحميل Swank (عبر Quicklisp, ، على سبيل المثال) ، وركض swank:create-server:

CL-USER(1): (ql:quickload "swank")
;; ...
CL-USER(2): (swank:create-server)
;; Swank started at port: 4005.
4005

إذا كنت ترغب في تحديد منفذ مختلف ، يمكنك القيام بذلك باستخدام :port حجة الكلمة الرئيسية:

CL-USER(3): (swank:create-server :port 4123)
;; Swank started at port: 4123.
4123

لاحظ أنه نظرًا لأن البروتوكول يميل إلى التغيير بين الإصدارات ، فأنت بحاجة إلى التأكد من أنك لا تستخدم إصدارات مختلفة تمامًا من Slime و Swank. بالنسبة إلى LISP المشترك ، أميل إلى استخدام الإصدارات من QuickLisp عن طريق وضع شيء مثل ما يلي في بلدي .emacs, ، اعتمادًا على إصدار Slime المتاح حاليًا في QuickLisp:

(add-to-list 'load-path "~/quicklisp/dists/quicklisp/software/slime-20111105-cvs")
(add-to-list 'load-path "~/quicklisp/dists/quicklisp/software/slime-20111105-cvs/contrib")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top