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

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

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

Какой Лисп, Общий Лисп?

pupeno 18.09.2008 21:43

В данном случае да, Common Lisp. Я тоже немного поиграюсь в Scheme, но это больше для случайного исследовательского программирования.

Drew Olson 18.09.2008 21:45

Пожалуйста, см. Лисп в Vim с Slimv или Vlime, где я предоставил подробный отчет о программировании Common Lisp в Vim с помощью Slimv или Vlime, двух популярных плагинов для Vim, которые предоставляют SLIME-подобную среду интерактивного программирования для Common Lisp.

Susam Pal 13.12.2020 21:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
88
3
44 519
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Ознакомьтесь с плагином Limp:

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

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

: set lisp

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

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

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

отступы легко. Гораздо важнее предоставить хорошую IDE. На самом деле VIM даже этого не делает (отступы), как Emacs / SLIME.

Luís Oliveira 18.09.2008 22:34

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

Используйте Emacs.

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

Я все еще поддерживаю этот ответ, хотя люди все еще голосуют за него по состоянию на апрель 2011 года. Мне нравится Vim, и я использую его ежедневно, но нет ничего лучше, чем программировать Lisp в среде, написанной на Lisp. «Я бы хотел, чтобы мой редактор реагировал на то, что происходит на моем Lisp-сервере. О, подождите! Я могу!» это прекрасное чувство. Опять же: я подобно Vim, но я считаю, что Emacs - гораздо лучший редактор для работы с Лисп.

Kirk Strauser 20.04.2011 20:22

Продолжение: 6 лет спустя, а вы все еще голосуете за ответ почти десятилетней давности? Хорошо, мы поняли, мы поняли! ? Я все еще не меняю его.

Kirk Strauser 02.11.2017 00:44

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.

Некоторым людям нравится также ХРОМАТЬ.

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

Это глупо. Вам не нужен C для настройки Vim. Vim готов к написанию сценариев на своем собственном языке, и большинство сборок также поддерживают сценарии Ruby и Python.

Sam Stokes 05.11.2008 13:52

Итак, пользователи VIM, которые хотят использовать VIM для Common Lisp, являются ядром всех пользователей VIM ?? Может я что-то здесь упускаю ...

Will Hartung 01.01.2009 01:09

@Luis: На самом деле, тот факт, что синяя точка находится в центре, делает невозможным пересечение зеленой точки с ней. Я бы сказал, что автору схемы не известно, как работает геометрия.

intuited 03.10.2010 00:16

Предполагается, что зеленый и синий пересекаются.

Luís Oliveira 04.10.2010 23:42

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

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

Ответ принят как подходящий

Limp стремится стать полнофункциональной средой разработки Common Lisp для Vim. По умолчанию используется SBCL, но его можно изменить для поддержки большинства других реализаций, заменив «sbcl» на ваш любимый lisp в файле /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 является частью, которая запускается в вашем Lisp). редактор - фронтенд).

И где-то посередине, вполне вероятно, что весь Limp будет переписан на Common Lisp с использованием интерфейса ECL, что упростит поддержку Limp (VimScript мне не нравится) и его будет проще настраивать для пользователей.

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

Удачи!

Каков статус этой работы? Вы все еще заинтересованы в работе с ним?

Erik Garrison 04.05.2010 00:31

Я запутался. «Ответ» кажется предложением нескольких вариантов, таких как использование Limp, но совсем не объясняет, как этого добиться. Я думал, что вопрос в том, как мне использовать Vim с SBCL и чем угодно. Это не совсем ответ на вопрос, поэтому меня немного смущают все положительные голоса. Не могли бы вы рассказать немного о том, как на самом деле настроить эту среду и начать работу?

jpswain 02.07.2011 23:33

Кажется, Limp больше не поддерживается: сайт не работает, а последнее изменение было в 2008 году.

kynan 03.01.2014 00:04

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

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

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

Вы можете дать Slimv передышку.

+1 Просто начинаю с slimv, так что почти ничего об этом не знаю, но, похоже, он отлично работает из коробки в качестве реальной альтернативы slime для emacs. Также у него есть недавние релизы (v0.9.2 07-ноя-2011), а у limp нет обновлений с 2008 года.

jmsu 13.12.2011 20:45

Некоторое время пользуюсь slimv; это отлично. Ничто другое не сравнится в этом пространстве.

tempire 02.08.2012 21:27

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

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

Другие вопросы по теме