Використання Vim для розробки Lisp


87

Я деякий час використовую та вимикаю Lisp, але я починаю більш серйозно ставитись до "справжньої" роботи в Lisp. Я великий шанувальник Vim, і мені було цікаво, як я можу бути найбільш продуктивним, використовуючи Vim як мій редактор для розробки Lisp. Вітаються плагіни, пропозиції щодо робочих процесів тощо.

Будь ласка, не кажіть "використовувати emacs", оскільки я вже набрався на Vim, і мені дуже подобається це як редактор.


Який Lisp, Common Lisp?
pupeno

У цьому випадку так, Common Lisp. Я теж пограю в Scheme, але це більше стосується випадкових дослідницьких програм.
Дрю Олсон,

Відповіді:


51

Limp прагне стати повнофункціональною IDE Common Lisp для Vim. За замовчуванням він має SBCL, але його можна змінити на підтримку більшості інших реалізацій, замінивши "sbcl" на ваш улюблений шепіт у файлі /usr/local/limp/latest/bin/lisp.sh

Обговорюючи Lisp в ці дні, зазвичай прийнято вважати Common Lisp, мову, стандартизовану ANSI X3J13 (див . HyperSpec та Практичний Common Lisp для хорошого підручника) з такими реалізаціями, як GNU Clisp, SBCL, CMUCL, AllegroCL та багато інших. інші.

Назад до кульгавості. Є й інші рішення, які є більш легкими або намагаються робити щось інше, але я вірю в створення такого середовища, яке дає вам такі речі, як відповідність дужок, виділення, пошук документації, тобто, роблячи це рішення під ключ якомога більше .

У сховищі Limp ви знайдете деякі попередні роботи проекту 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 не мій улюблений) і полегшить користувачеві налаштування.

Офіційний сайт Limp знижується час від часу, але , як зазначалося, завантажити в Vim.org повинні завжди працювати, і групи підтримки кульгавість-Devel і кульгав-користувачів розміщуються з Google Groups. Не соромтеся приєднуватися, якщо ви відчуваєте, що вам потрібна відповідь на запитання, або, можливо, навіть хочете долучитися до розробки. Більша частина дискусій відбувається в млявому списку. Якщо ви любите IRC, я в #limp на irc.freenode.net як "tic".

Удачі!


3
Який статус цієї роботи? Ви все ще зацікавлені в роботі з ним?
Ерік Гаррісон,

4
Я збентежений. "Відповідь" здається пропозицією кількох варіантів, наприклад, використання Limp, але взагалі не пояснює, як це зробити. Я думав, що питання полягає в тому, як мені використовувати Vim із SBCL / чим завгодно. Це насправді не відповідає на запитання, тому я трохи заплутаний усіма голосами. Чи не могли б Ви трохи заглибитися в те, як насправді налаштувати це середовище та розпочати?
jpswain

Здається, Limp більше не підтримується: сайт
заблокований,

Як зазначали інші, більшість посилань вище (і на млявій сторінці на vim.org) довго не працюють. Однак ви можете знайти майже все (файли .vim та відповідну документацію) за адресою github.com/mikaelj/limp
George Hawkins

28

Ви можете відпочити slimv .


+1 Починаючи з slimv, тому майже нічого про нього не знати, але, здається, він працює чудово, як справжня альтернатива слиз для emacs. Також він має останні випуски (v0.9.2 07.11.2011), тоді як
limp

2
Якийсь час використовував slimv; це чудово. Більше нічого не можна порівняти в просторі.
tempire

18

Ось крута діаграма Xach, яка підсумовує поточну ситуацію.

схема, що пояснює, що майже немає користувачів VIM, які також є програмістами Lisp, і які також можуть зламати його, щоб зробити хороший IDE Lisp ... паршивий alt текст :)


61
Це безглуздо. Вам не потрібно C, щоб налаштувати Vim. Vim можна скриптувати на власній мові, і більшість збірок також підтримують сценарії Ruby та Python.
Сем Стокс

6
Отже, користувачі VIM, які хочуть використовувати VIM для Common Lisp, є ядром усіх користувачів VIM ?? Можливо, мені чогось тут не вистачає ...
Уілл Хартунг

@ Луїс: Насправді той факт, що синя крапка знаходиться в центрі, унеможливлює не перетин зеленої точки з нею. Я б сказав, що автору діаграми не вистачає того, як працює геометрія.
інтуїція

9
Зелений і синій повинні перетинатися.
Луїс Олівейра,


7

SLIME для EMACS - чудовий інструмент для програмування LISP. Найкраща частина - надсилання коду, написаного у вашому редакторі, безпосередньо до поточного сеансу LISP. Ви можете отримати подібну поведінку від Vim, скориставшись порадами тут:

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

Я скоригував свій власний сценарій, щоб я міг надсилати або сеанс SBCL, або Clojure . Це робить вас набагато продуктивнішими та використовує переваги REPL.

": set lisp" запускає режим відступу для Vim. Але це не спрацює з деякими діалектами, такими як Clojure. Для Clojure використовуйте VimClojure .

Деякі люди також люблять LIMP .


7

Ось ми через 9 років, і тепер у нас є Vim 8 і Neovim, обидва забезпечують можливість асинхронної взаємодії з плагінами.

vlime - чудовий багатофункціональний плагін, який використовує переваги нового асинхронного інтерфейсу, щоб забезпечити середовище розробника, подібне до SLIME, для Common Lisp.


6
  • Доповнення Vim: дужки Rainbow, синтаксис Lisp
  • Додатки SBCL: rlwrap, sb-aclrepl
  • Робочий процес: Ion3 (або будь-який інший плитковий WM) з декількома вікнами терміналів.

    • Редагуйте Lisp у Vim
    • Перейти до вікна Lisp (звичайно, використовуючи клавіатуру)
    • Використовуйте Cr, щоб згадати рядок, щоб перезавантажити відповідну систему ASDF, щоб ваші зміни стали активними.
    • Використовуйте X Window copy / paste для невеликих фрагментів / змін.
    • Інтенсивно використовуйте DESCRIBE, TRACE і APROPOS.
    • Повторити.

5

: встановити lisp

Vim має режим, який допоможе вам зробити відступ вашого коду за стандартами Lisp.

Крім того, я модифікую lispwords, щоб змінити спосіб відступу мого коду vim.

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


1
відступ легко. Надання хорошої IDE набагато важливіше. Насправді VIM навіть не робить цього (відступ) так само, як це робить Emacs / SLIME.
Луїс Олівейра

3

Ви можете спробувати Emacs з емуляцією Vim, це не ідеально, але це може бути дещо звично. Думаю, Lisp блищить, якщо ви використовуєте щось на зразок Slime або DrScheme для ітеративної розробки, всі інші редактори почуваються просто неправильно.


2

Я знаю, що ви сказали не казати вам користуватися Emacs.

Використовуйте Emacs.

Серйозні, то SLIME установка для Emacs досить багато стандартна платформа для розробки Лисп, і дуже вагомі причини.


5
Я все ще дотримуюсь цієї відповіді, хоча люди все ще голосують проти неї станом на квітень 2011 року. Мені подобається Vim і я використовую її щодня, але нічого подібного до програмування Lisp в середовищі, написаному на Lisp. "Мені б хотілося, щоб мій редактор реагував на те, що сталося на моєму сервері Lisp. О, почекай! Я можу!" це чудове почуття. Знову ж таки: мені подобається Vim, але я вважаю, що Emacs - набагато кращий редактор для роботи з Lisp .
Кірк Штраузер,

Продовження: 6 років потому, і ви все ще голосуєте за цю майже десятирічну відповідь? Добре, ми розуміємо, ми отримуємо це! 😀 Я все ще не змінюю його.
Кірк Штраузер,

2

Здається, були спроби здійснити подібну до SLIME інтеграцію Lisp у Vim, але жодна з них насправді не зайшла так далеко, наскільки це було справді корисно. Я думаю, що інтеграція ECL була зроблена, однак, але не здійснена вище.

Ви повинні знайти всі відповідні посилання на сторінці Клікі про Вім .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.