سؤال

لقد كنت أستخدم Lisp وإيقافه لفترة من الوقت ولكني بدأت أصبح أكثر جدية بشأن القيام ببعض الأعمال "الحقيقية" في Lisp.أنا معجب كبير بـ Vim وكنت أتساءل كيف يمكنني أن أكون أكثر إنتاجية باستخدام Vim كمحرر لتطوير Lisp.المكونات الإضافية، واقتراحات سير العمل، وما إلى ذلك.مرحبا بكم جميعا.

من فضلك لا تقل "استخدم emacs" لأنني قمت بالفعل بتكثيف استخدام Vim وأنا أستمتع به حقًا كمحرر.

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

المحلول

يهدف Limp إلى أن يكون Common Lisp IDE مميزًا بالكامل لـ Vim.يتم تعيينه افتراضيًا على SBCL، ولكن يمكن تغييره لدعم معظم التطبيقات الأخرى عن طريق استبدال "sbcl" بـ lisp المفضلة لديك، في الملف /usr/local/limp/latest/bin/lisp.sh

عند مناقشة Lisp هذه الأيام، يُفترض عادةً أنها لغة Lisp الشائعة، وهي اللغة الموحدة بواسطة ANSI X3J13 (انظر هايبرسبيك, ، و اللثغة المشتركة العملية للحصول على كتاب مدرسي جيد) مع تطبيقات مثل GNU Clisp، وSBCL، وCMUCL، وAllegroCL، وغيرها الكثير.

العودة إلى العرج.هناك حلول أخرى أخف وزنًا، أو تحاول القيام بأشياء أخرى، لكنني أؤمن بتوفير بيئة تمنحك أشياء مثل مطابقة الأقواس، والتمييز، والبحث عن الوثائق، على سبيل المثال.مما يجعلها حلاً جاهزًا قدر الإمكان.

في مستودع العرج ستجد بعض الأعمال السابقة لمشروع SlimVim، وهي واجهة ECL (Embeddable Common Lisp)، مدمجة مع الإصدارات الأحدث (7.1)؛قام سيمون أيضًا بتوفير تصحيحات للإصدار 7.2 لم يتم دمجها بعد.تم توثيق واجهة ECL في if_ecl.txt.

العمل على المدى القصير هو القيام بالدمج المذكور مع الإصدار 7.2 وإرسال التصحيح إلى vim_dev لدمجه في شجرة Vim الرسمية.

مما يقودنا إلى الخطط طويلة المدى:إن وجود Lisp مباشرة في Vim سيجعل من السهل بدء العمل على واجهة SWANK الأمامية (جزء SLIME الذي يعمل في Lisp الخاص بك، مع كون Slime.el هو الجزء الذي يتم تشغيله في المحرر - الواجهة الأمامية).

وفي مكان ما بينهما، من المحتمل أن تتم إعادة كتابة Limp بالكامل في Common Lisp باستخدام واجهة ECL، مما يجعل صيانة Limp أسهل (VimScript ليس المفضل لدي) ويسهل على المستخدمين تخصيصه.

ال موقع ليمب الرسمي ينخفض ​​من وقت لآخر، ولكن كما أشار، فإن تحميل في Vim.org يجب أن تعمل دائما، ومجموعات الدعم يعرج تطوير و يعرج المستخدم تتم استضافتها مع مجموعات Google.لا تتردد في الانضمام إذا كنت تشعر أنك بحاجة إلى إجابة لسؤال ما، أو ربما ترغب في المشاركة في التطوير.معظم المناقشة تدور حول قائمة العرج.إذا كنت من مستخدمي IRC، فأنا في #limp على irc.freenode.net باسم "tic".

حظ سعيد!

نصائح أخرى

قد تعطي Slimv استراحة.

إليك مخططًا رائعًا بواسطة زاك الذي يلخص الوضع الحالي.

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 :)

SLIME for EMACS هي أداة رائعة لبرمجة LISP.أفضل ما في الأمر هو إرسال التعليمات البرمجية المكتوبة في محررك مباشرة إلى جلسة LISP المباشرة.يمكنك الحصول على سلوك مماثل من Vim باستخدام النصائح هنا:

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

لقد قمت بتعديل البرنامج النصي الخاص بي حتى أتمكن من الإرسال إلى أي منهما إس بي سي إل أو كلوجر حصة.يجعلك أكثر إنتاجية ويستفيد من REPL.

":set lisp" يبدأ وضع المسافة البادئة لـ Lisp لـ Vim.لكنها لن تعمل مع بعض اللهجات مثل كلوجر.بالنسبة لـ Clojure، استخدم VimClojure.

بعض الناس يحبون يعرج أيضًا.

تحقق من البرنامج الإضافي Limp:

http://www.vim.org/scripts/script.php?script_id=2219

:ضبط اللثغة

يحتوي Vim على وضع لمساعدتك في وضع مسافة بادئة للتعليمات البرمجية الخاصة بك وفقًا لمعايير Lisp.

أقوم أيضًا بتعديل كلمات lispwords لتغيير كيفية وضع المسافة البادئة للكود الخاص بي.

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

  • إضافات فيم:قوس قزح، بناء جملة اللثغة
  • إضافات SBC:rlwrap، بينالي الشارقة-aclrepl
  • سير العمل:Ion3 (أو بعض WM المبلطة الأخرى) مع نوافذ طرفية متعددة.

    • تحرير Lisp في Vim
    • قم بالتبديل إلى نافذة Lisp (باستخدام لوحة المفاتيح بالطبع)
    • استخدم C-r لاستدعاء السطر لإعادة تحميل نظام ASDF المعني حتى تصبح تغييراتك نشطة.
    • استخدم نسخ/لصق X Window للمقتطفات/التغييرات الصغيرة.
    • استخدم DESCRIBE وTRACE وAPROPOS بكثافة.
    • يكرر.

يمكنك تجربة محاكاة Emacs مع Vim، فهي ليست مثالية، ولكنها قد تكون مألوفة إلى حد ما.أعتقد أن Lisp يتألق إذا كنت تستخدم شيئًا مثل Slime أو DrScheme للقيام بالتطوير التكراري، فإن جميع المحررين الآخرين يشعرون بالخطأ.

ها نحن الآن بعد مرور 9 سنوات، والآن لدينا Vim 8 وNeovim، وكلاهما يوفر القدرة على التفاعل مع المكونات الإضافية بشكل غير متزامن.

com.vlime هو مكون إضافي ممتاز وغني بالميزات يستفيد من الواجهة غير المتزامنة الجديدة لتوفير بيئة تطوير تشبه SLIME لـ Common Lisp.

أعلم أنك قلت ألا أخبرك باستخدام Emacs.

استخدم ايماكس.

جدي، الوحل الإعداد لـ Emacs هو إلى حد كبير ال منصة التطوير القياسية لـ Lisp، وذلك لسبب وجيه جدًا.

يبدو أنه كانت هناك محاولات للحصول على تكامل يشبه SLIME لـ Lisp في Vim، ولكن لم يصل أي منها حقًا إلى الحد المطلوب ليكون مفيدًا حقًا.أعتقد أن تكامل ECL قد تم، على الرغم من أنه لم يتم الالتزام به في المراحل الأولية.

يجب أن تجد جميع الروابط ذات الصلة من صفحة Cliki حول Vim.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top