Использование Vim для разработки Lisp

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

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

Ответ 1

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

При обсуждении Lisp в наши дни принято считать Common lisp, язык, стандартизованный ANSI X3J13 (см. HyperSpec и Практический общий 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".

Удачи!

Ответ 2

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

Ответ 3

Вот крутая диаграмма 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 :)

Ответ 4

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

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

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

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

Некоторые люди, например LIMP.

Ответ 6

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

У Vim есть режим, который поможет вам отформатировать код по стандарту Lisp.

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

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

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

Вы должны найти все релевантные ссылки из Страница Cliki о Vim.

Ответ 10

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

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

Ответ 11

Я знаю, что ты сказал, что не говоришь, чтобы ты использовал Emacs.

Использовать Emacs.

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