Использование Vim для разработки на Лиспе - PullRequest
85 голосов
/ 18 сентября 2008

Я уже некоторое время использую и выключаю Лисп, но я начинаю более серьезно относиться к выполнению "настоящей" работы в Лиспе. Я большой поклонник Vim, и мне было интересно, как я могу быть наиболее продуктивным, используя Vim в качестве редактора для разработки на Лиспе. Плагины, предложения рабочего процесса и т. Д. Приветствуются.

Пожалуйста, не говорите "используйте emacs", так как я уже освоил Vim, и мне действительно нравится это как редактор.

Ответы [ 11 ]

51 голосов
/ 19 сентября 2008

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

.

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

Вернуться к Limp. Есть и другие решения, которые являются более легкими или пытаются сделать что-то другое, но я верю в создание среды, которая дает вам такие вещи, как сопоставление скобок, выделение, поиск документации, то есть превращение ее в решение «под ключ» в максимально возможной степени .

В репозитории 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 всегда должна работать, а группы поддержки limp- devel и limp-user размещаются в группах Google. Не стесняйтесь присоединиться, если вы чувствуете, что вам нужен ответ на вопрос, или, возможно, даже хотите присоединиться к разработке. Большая часть обсуждения происходит в списке limp-devel. Если вы в IRC, я нахожусь в #limp на irc.freenode.net как 'tic'.

Удачи!

28 голосов
/ 12 января 2010

Вы можете дать slimv перерыв.

18 голосов
/ 18 сентября 2008

Вот классная диаграмма Xach , которая подводит итог текущей ситуации.

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

8 голосов
/ 18 сентября 2008

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

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

Я настроил свой собственный сценарий так, чтобы можно было отправлять сеанс SBCL или Clojure . Это делает вас намного более продуктивным и использует преимущества REPL.

": set lisp" запускает режим отступа lisp для Vim. Но это не будет работать с некоторыми диалектами, такими как Clojure. Для Clojure используйте VimClojure .

Некоторым людям нравится LIMP .

7 голосов
/ 18 сентября 2008

Проверьте плагин Limp:

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

5 голосов
/ 17 февраля 2009
  • Дополнения Vim: круглые скобки, синтаксис Lisp
  • SBCL дополнения: rlwrap, sb-aclrepl
  • Рабочий процесс: Ion3 (или некоторый другой плиточный WM) с несколькими оконными окнами.

    • Редактировать Лисп в Vim
    • Переключиться в окно Lisp (конечно, с помощью клавиатуры)
    • Используйте C-r, чтобы вызвать строку для перезагрузки рассматриваемой системы ASDF, чтобы ваши изменения стали активными.
    • Используйте X Window copy / paste для небольших фрагментов / изменений.
    • интенсивно используйте DESCRIBE, TRACE и APROPOS.
    • Повтор.
5 голосов
/ 18 сентября 2008

: установить шрифт

В Vim есть режим, который поможет вам сделать отступ для вашего кода по стандартам Lisp.

Кроме того, я изменяю lispwords, чтобы изменить отступ vim для моего кода.

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

3 голосов
/ 18 сентября 2008

Вы можете попробовать Emacs с эмуляцией Vim, он не идеален, но может быть несколько знакомым. Я думаю, что Лисп сияет, если вы используете что-то вроде Slime или DrScheme, выполняющее итеративную разработку, все остальные редакторы чувствуют себя просто неправильно.

2 голосов
/ 17 июля 2017

Вот мы 9 лет спустя, и теперь у нас есть Vim 8 и Neovim, которые предоставляют возможность асинхронного взаимодействия с плагинами.

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

2 голосов
/ 19 сентября 2008

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

Вы должны найти все соответствующие ссылки со страницы Клики о Vim .

...