लिस्प विकास के लिए विम का उपयोग करना


87

मैं कुछ समय से लिस्प पर और बंद का उपयोग कर रहा हूं, लेकिन मैं लिस्प में कुछ "वास्तविक" काम करने के बारे में अधिक गंभीर होना शुरू कर रहा हूं। मैं एक विशाल विम प्रशंसक हूं और सोच रहा था कि लिस्प विकास के लिए मैं अपने संपादक के रूप में विम का उपयोग करके सबसे अधिक उत्पादक कैसे हो सकता हूं। प्लगइन्स, कार्य प्रवाह सुझाव आदि सभी का स्वागत है।

कृपया यह न कहें कि "एमएसीएस का उपयोग करें" क्योंकि मैं पहले ही विम पर रैंप कर चुका हूं और मैं वास्तव में एक संपादक के रूप में इसका आनंद ले रहा हूं।


कौन सा लिस्प, आम लिस्प?
प्यूपीनो सेप

इस मामले में, हाँ, आम लिस्प। मैं इस योजना के आसपास कुछ कर रहा हूँ, लेकिन यह आकस्मिक खोज प्रोग्रामिंग के लिए अधिक है।
ड्रू ओल्सन

जवाबों:


51

लिम्प का लक्ष्य विम के लिए पूरी तरह से चित्रित कॉमन लिस्प आईडीई होना है। यह SBCL में चूक करता है, लेकिन फ़ाइल /usr/local/limp/latest/bin/lisp.sh में अपने पसंदीदा लिस्प के लिए "sbcl" को बदलकर अधिकांश अन्य कार्यान्वयन का समर्थन करने के लिए बदला जा सकता है।

जब लिस्प पर चर्चा इन दिनों, यह आमतौर पर कॉमन लिस्प, भाषा (देखें एएनएसआई X3J13 द्वारा मानकीकृत माना जाता है HyperSpec , और प्रैक्टिकल कॉमन लिस्प जैसे GNU Clisp, SBCL, CMUCL, AllegroCL, और कई के रूप में कार्यान्वयन के साथ एक अच्छा पाठ्यपुस्तक के लिए) अन्य।

वापस Limp के लिए। ऐसे अन्य समाधान हैं जो अधिक हल्के वजन वाले हैं, या अन्य चीजों को करने की कोशिश करते हैं, लेकिन मैं एक ऐसा वातावरण प्रदान करने में विश्वास करता हूं जो आपको ब्रैकेट मिलान, हाइलाइटिंग, दस्तावेजीकरण लुकअप जैसी चीजें प्रदान करता है, यानी इसे जितना संभव हो उतना महत्वपूर्ण समाधान बनाना है। ।

में लिम्प भंडार आप SlimVim परियोजना, अर्थात् ईसीएल (एम्बेड करने योग्य कॉमन लिस्प) इंटरफेस, के पिछले काम के कुछ बाद में विज्ञप्ति (7.1) के साथ विलय मिल जाएगा; साइमन ने अभी तक विलय होने के लिए पैच भी 7.2 उपलब्ध कराए हैं। ECL इंटरफ़ेस if_ecl.txt में प्रलेखित है

लघु-अवधि का काम 7.2 के साथ विलय करना है और vim_dev को एक पैच प्रस्तुत करना है ताकि इसे आधिकारिक विम पेड़ में विलय कर दिया जा सके।

जो हमें दीर्घकालिक योजनाओं की ओर ले जाता है: विम में सीधे लिस्प होने से एक SWANK फ्रंट-एंड (SLIME का वह हिस्सा जो आपके लिस्प में चलता है, slime.el का हिस्सा होता है) पर काम करना शुरू करना सुविधाजनक होगा। संपादक - the frontend)।

और कहीं न कहीं, यह संभावना है कि सभी Limp को ECL इंटरफ़ेस का उपयोग करके कॉमन लिस्प में फिर से लिखा जाएगा, जिससे Limp को बनाए रखना आसान होगा (VimScript मेरा पसंदीदा नहीं है) और उपयोगकर्ताओं के लिए अनुकूलित करना आसान है।

आधिकारिक लिम्प साइट समय-समय पर नीचे चला जाता है, लेकिन उठाई बाहर के रूप में, Vim.org पर डाउनलोड हमेशा काम करते हैं, और सहायता समूहों चाहिए लंगड़ा-devel और लंगड़ा-उपयोगकर्ता Google समूह के साथ की मेजबानी कर रहे हैं। यदि आपको लगता है कि आपको किसी प्रश्न का उत्तर देने की आवश्यकता है, तो शायद आप इसमें शामिल होने में संकोच न करें, या शायद विकास में शामिल होना चाहते हैं। ज्यादातर चर्चा लिम्प-डेवेल की सूची पर होती है। यदि आप IRC में हैं, तो मैं 'tic' के रूप में irc.freenode.net पर #limp में हूं।

सौभाग्य!


3
इस कार्य की स्थिति क्या है? क्या आप अभी भी इसके साथ काम करने में रुचि रखते हैं?
एरिक गैरीसन

4
मैं उलझन में हूं। "उत्तर" कुछ विकल्पों के एक सुझाव की तरह लगता है, जैसे कि लिम्प का उपयोग करना, लेकिन इसे कैसे पूरा करना है, यह बिल्कुल भी नहीं समझाता है। मैंने सोचा था कि प्रश्न था, मैं एसबीसीएल / जो भी हो, के साथ विम का उपयोग कैसे करूं। यह वास्तव में सवाल का जवाब नहीं देता है, इसलिए मैं सभी अपवित्रों से थोड़ा भ्रमित हूं। क्या आप इस बात पर थोड़ा विस्तार करेंगे कि वास्तव में इस वातावरण को कैसे स्थापित किया जाए और क्या शुरू किया जाए?
jpswain

ऐसा लगता है लिम्प नहीं रह गया है बनाए रखा है: साइट के बंद होने और अंतिम परिवर्तन 2008 में था
kynan

जैसा कि अन्य लोगों ने उल्लेख किया है कि ऊपर दिए गए अधिकांश लिंक (और vim.org पर लंग पेज पर) लंबे टूटे हुए हैं। हालाँकि आप लगभग सब कुछ (.vim फ़ाइलों और संबंधित प्रलेखन) github.com/mikaelj/limp
जॉर्ज हॉकिन्स

28

आप स्लिमव को ब्रेक दे सकते हैं ।


+1 बस स्लिमव के साथ शुरू करना इसके बारे में लगभग कोई ज्ञान नहीं है, लेकिन यह बॉक्स के बाहर पूरी तरह से ठीक काम करने के लिए लगता है कि एमएसीएस के लिए कीचड़ का एक वास्तविक विकल्प है। इसके अलावा इसकी हालिया रिलीज़ (v0.9.2 07-nov-2011) है, जबकि
लंगप में

2
कुछ समय के लिए स्लिमव का उपयोग किया गया; उत्कृष्ट है। अंतरिक्ष में और कुछ की तुलना नहीं है।
tempire

18

यहाँ Xach द्वारा एक शांत आरेख है जो वर्तमान स्थिति को प्रस्तुत करता है।

आरेख यह समझाते हुए कि लगभग कोई भी VIM उपयोगकर्ता नहीं हैं जो लिस्प प्रोग्रामर भी हैं और इसे हैक करके इसे एक अच्छा लिस्प IDE भी बना सकते हैं ... lousy alt text :)


61
यह मूर्खतापूर्ण है। Vim को कस्टमाइज़ करने के लिए आपको C की आवश्यकता नहीं है। विम अपनी भाषा में बॉक्स से बाहर स्क्रिप्ट करने योग्य है, और अधिकांश रूबी और पायथन स्क्रिप्टिंग का भी समर्थन करता है।
सैम स्टोक्स

6
तो, जिन VIM यूजर्स VIM का इस्तेमाल कॉमन लिस्प के लिए करना चाहते हैं, वे सभी VIM यूजर्स के मूल हैं ?? शायद मुझे यहाँ कुछ याद आ रहा है ...
विल हार्टुंग

@ उपसर्ग: दरअसल, यह तथ्य कि नीली बिंदु केंद्र में है, इससे हरे रंग के लिए असंभव नहीं है कि वह इसके साथ अंतर न करे। मैं कहूंगा कि आरेख का लेखक गायब है कि ज्यामिति कैसे काम करती है।
intuited

9
हरे और नीले को प्रतिच्छेदन माना जाता है।
लुइसे ओलिवेरा


7

EMACS के लिए SLIME LISP प्रोग्रामिंग के लिए एक अद्भुत उपकरण है। सबसे अच्छा हिस्सा आपके संपादक में लिखा कोड सीधे लाइव LISP सत्र में भेज रहा है। आप यहाँ दिए गए सुझावों का उपयोग करके विम के समान व्यवहार प्राप्त कर सकते हैं:

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

मैंने अपनी खुद की स्क्रिप्ट को समायोजित किया ताकि मैं किसी एसबीसीएल या क्लोजर सत्र को भेज सकूं । यह आपको बहुत अधिक उत्पादक बनाता है और REPL का लाभ उठाता है।

", सेट लिस्प" विम के लिए लिस्प इंडेंटेशन मोड शुरू करता है। लेकिन यह कुछ बोलियों जैसे क्लोजर के साथ काम नहीं करेगा। क्लोजर के लिए, विमक्लोर्ज का उपयोग करें

कुछ लोगों को लिमप पसंद है भी ।


7

यहां हम 9 साल बाद हैं, और अब हमारे पास विम 8 और नेओविम हैं, दोनों ही प्लगइन्स के साथ बातचीत करने की क्षमता प्रदान करते हैं।

vlime एक उत्कृष्ट, फीचर से भरपूर प्लगइन है जो कॉमन लिस्प के लिए SLIME की तरह देव माहौल प्रदान करने के लिए नए async इंटरफ़ेस का लाभ उठाता है।


6
  • विम ऐड-ऑन: रेनबो पेरेंटेस, लिस्प सिंटैक्स
  • SBCL ऐड-ऑन: rlwrap, sb-aclrepl
  • वर्कफ़्लो: Ion3 (या कुछ अन्य टाइलों के साथ WM) कई टर्मिनल विंडो के साथ।

    • विम में एडिट लिस्प
    • लिस्प विंडो पर स्विच करें (पाठ्यक्रम के कीबोर्ड का उपयोग करके)
    • क्रैड का उपयोग करें ASDF सिस्टम को फिर से लोड करने के लिए लाइन को याद करने के लिए ताकि आपके परिवर्तन सक्रिय हो जाएं।
    • छोटे स्निपेट / परिवर्तनों के लिए X विंडो कॉपी / पेस्ट का उपयोग करें।
    • DESCRIBE, TRACE और APROPOS का भारी उपयोग करें।
    • दोहराएँ।

5

: लिस्प सेट करें

विम आपके पास लिस्प मानकों द्वारा अपने कोड को इंडेंट करने में मदद करने के लिए एक मोड है।

इसके अलावा, मैं अपने कोड को कैसे vim इंडेंट करता है इसे बदलने के लिए लिस्क्रिप्स को संशोधित करता हूं।

: setl lw- = if (~ / .vim / ftplugin / lisp.vim में)


1
इंडेंट करना आसान है। एक अच्छी IDE प्रदान करना अधिक महत्वपूर्ण है। वास्तव में VIM वह (इंडेंटेशन) भी नहीं करेगा जो Emacs / SLIME करता है।
लुइसे ओलिवेरा

3

आप Emacs को Vim emulation के साथ आज़मा सकते हैं, यह सही नहीं है, लेकिन यह कुछ हद तक परिचित हो सकता है। मुझे लगता है कि लिस्प चमकता है यदि आप स्लिम या ड्रामेमे जैसे कुछ का उपयोग करते हुए पुनरावृत्त विकास कर रहे हैं, तो अन्य सभी संपादकों को गलत लगता है।


2

मैं जानता हूं कि आपने कहा था कि आप एमएसीएस का उपयोग करने के लिए नहीं कहेंगे।

Emacs का प्रयोग करें।

गंभीर, कीचड़ Emacs के लिए सेटअप काफी है लिस्प के लिए मानक विकास मंच, और बहुत अच्छे कारण के लिए।


5
मैं अभी भी इस जवाब के साथ खड़ा हूं, भले ही लोग अभी भी इसे अप्रैल 2011 तक वोट कर रहे हैं। मुझे विम पसंद है और इसका दैनिक उपयोग करते हैं, लेकिन लिस्प में लिखे वातावरण में प्रोग्रामिंग लिस्प की तरह कुछ भी नहीं है। "काश मैं अपने संपादक को अपने लिस्प सर्वर में होने वाली प्रतिक्रिया दे सकता। ओह, रुको! मैं कर सकता हूँ!" बहुत अच्छा अहसास है। फिर से: मुझे विम पसंद है , लेकिन मेरी राय है कि लिसा के साथ काम करने के लिए एमाक्स एक बेहतर संपादक है ।
कर्क स्ट्रूसर

फॉलोअप: 6 साल बाद और y'all अभी भी लगभग एक-दशक पुराने उत्तर पर मतदान कर रहे हैं? ठीक है, हम इसे प्राप्त करते हैं, हम इसे प्राप्त करते हैं! Changing मैं अभी भी इसे नहीं बदल रहा हूं।
किर्क स्ट्रैसर

2

लगता है कि विम में लिस्प का एक एसएल टाइम जैसा एकीकरण होने के प्रयास किए गए हैं, लेकिन वास्तव में उपयोगी होने के लिए किसी की भी जरूरत नहीं है। मुझे लगता है कि ईसीएल का एकीकरण किया गया है, लेकिन ऊपर की ओर प्रतिबद्ध नहीं है।

आपको Vim के बारे में Cliki के पेज से सभी प्रासंगिक लिंक ढूंढने चाहिए ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.