Использование Vim для разработки на Lisp
-
01-07-2019 - |
Вопрос
Я некоторое время включал и выключал Lisp, но начинаю более серьезно относиться к выполнению какой-то "реальной" работы на Lisp.Я большой поклонник Vim, и мне было интересно, как я могу быть наиболее продуктивным, используя Vim в качестве редактора для разработки Lisp.Плагины, предложения по организации работы и т.д.приветствуются все.
Пожалуйста, не говорите "используйте emacs", так как я уже освоил Vim, и мне действительно нравится работать с ним как с редактором.
Решение
Limp стремится стать полнофункциональной Common Lisp IDE для Vim.По умолчанию используется SBCL, но его можно изменить для поддержки большинства других реализаций, заменив "sbcl" на ваш любимый lisp в файле /usr/local/limp/latest/bin/lisp.sh
При обсуждении Lisp в наши дни обычно предполагается, что это Common Lisp, язык, стандартизированный ANSI X3J13 (см. гиперспецификация, и Практический Common Lisp для хорошего учебника) с такими реализациями, как 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 позволит начать работу над шикарным интерфейсом (частью SLIME, которая выполняется в вашем Lisp, причем slime.el является частью, которая выполняется в редакторе - интерфейсе).
И где-то посередине, вполне вероятно, что весь Limp будет переписан на Common Lisp с использованием интерфейса ECL, что упростит обслуживание Limp (VimScript не мой любимый) и упростит настройку пользователям.
Тот Самый официальный сайт Limp время от времени выходит из строя, но, как уже указывалось, скачать можно по адресу Vim.org всегда должно получаться, и группы поддержки хромой-девел и хромой пользователь размещаются в Google Groups.Не стесняйтесь присоединиться, если вы чувствуете, что вам нужен ответ на вопрос, или, возможно, даже хотите поучаствовать в разработке.Большая часть обсуждения происходит в списке limp-devel.Если ты интересуешься IRC, я в #limp включаю irc.freenode.net как "tic".
Удачи вам!
Другие советы
Вы могли бы дать slimv перерыв.
Вот классная диаграмма от Xach это подводит итог текущей ситуации.
SLIME для EMACS - замечательный инструмент для программирования на ЛИСПЕ.Самое приятное - это отправка кода, написанного в вашем редакторе, прямо в живой сеанс LISP.Вы можете добиться аналогичного поведения от Vim, используя приведенные здесь советы:
http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/
Я скорректировал свой собственный скрипт таким образом, чтобы я мог отправлять либо SBCL или Clojure ( Клоджур ) сессия.Это делает вас намного продуктивнее и использует преимущества REPL.
":set lisp" запускает режим отступа lisp для Vim.Но это не сработает с некоторыми диалектами, такими как Clojure.Для Clojure используйте VimClojure.
Некоторым людям нравится ХРОМОЙ также.
Ознакомьтесь с подключаемым модулем Limp:
:установить lisp
В Vim есть режим, который поможет вам сделать отступ в вашем коде в соответствии со стандартами Lisp.
Кроме того, я изменяю lispwords, чтобы изменить то, как vim делает отступы в моем коде.
:setl lw-=if (в ~/.vim/ftplugin/lisp.vim)
- Дополнения Vim:Радужные круглые скобки, синтаксис Lisp
- Дополнения SBCL:rlwrap, sb-aclrepl
Рабочий процесс:Ion3 (или какой-либо другой плиточный WM) с несколькими окнами терминала.
- Редактировать Lisp в Vim
- Переключиться в окно Lisp (разумеется, с помощью клавиатуры)
- Используйте C-r, чтобы вызвать строку для перезагрузки соответствующей системы ASDF, чтобы ваши изменения стали активными.
- Используйте X Window copy / paste для небольших фрагментов / изменений.
- Интенсивно используйте DESCRIBE, TRACE и APROPOS.
- Повторяю.
Вы можете попробовать Emacs с эмуляцией Vim, это не идеально, но может показаться несколько знакомым.Я думаю, что Lisp великолепен, если вы используете что-то вроде Slime или DrScheme для итеративной разработки, все остальные редакторы чувствуют себя просто неправильно.
И вот мы здесь 9 лет спустя, и теперь у нас есть Vim 8 и Neovim, оба предоставляют возможность асинхронного взаимодействия с плагинами.
известь это отличный, многофункциональный плагин, который использует преимущества нового асинхронного интерфейса для обеспечения SLIME-подобной среды разработки для Common Lisp.
Я знаю, вы просили не советовать вам использовать Emacs.
Используйте Emacs.
Серьезно, тот СЛИЗЬ настройка для Emacs в значительной степени тот самый стандартная платформа разработки для Lisp, и на то есть очень веские причины.
Похоже, были попытки интегрировать Lisp в Vim, похожие на SLIME, но ни одна из них не зашла так далеко, как это было необходимо, чтобы быть действительно полезной.Тем не менее, я думаю, что интеграция ECL была выполнена, но не передана вверх по течению.
Вы должны найти все соответствующие ссылки на Страница Cliki о Vim.