Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/124: Рейтинг темы: голосов - 124, средняя оценка - 4.63
helter
Эксперт по математике/физике
3813 / 2839 / 307
Регистрация: 12.03.2013
Сообщений: 5,175
1

Различные IDE для диалектов лиспа

20.04.2014, 21:26. Просмотров 22915. Ответов 124
Метки нет (Все метки)

Я работаю с лиспом (развлекаюсь, конечно, а не работаю) в vim + slimv. Буду нести эту связку в массы. Сразу оговариваюсь, что я не эксперт по slimv-у, поэтому что-то могу делать неоптимально и могу не знать многих фич. Однако и так он устанавливает достаточно удобный диалог с лиспом для того, чтобы не разменивать Редактор на всякую ерунду.

Slimv - это плагин, который имитирует функциональность Slime. В частности, он устанавливает диалог с работающим лисповым процессом. Написан на vimlang и python (та часть, которая отвечает за общение процессов через сокеты).

Да, я буду писать линуксоцентрично. Вроде бы slimv работает и на Windows, но пользователи оной ОС пусть сами разбираются, как его ставить. Также я буду писать CL-центрично, хотя slimv поддерживает и другие диалекты.

Я буду предполагать общее знакомство читателя с vim-ом, но нубовопросы по виму задавать можно и нужно.

Начать с установки.

Требования: vim с python и python.

Установка плагина тривиальна. Если есть pathogen, просто распаковать свежий slimv в ~/.vim/bundle. Если нет pathogen-а, сначала установить его по инструкции и см. п. 1.

Ещё у меня есть файл ~/.vim/ftplugin/lisp.vim следующего содержания:
Код
set lw-=if
set lw+=set-macro-character
set lw+=set-dispatch-macro-character
set lw+=block
set lw+=defsetf

inoremap <buffer> <C-\> lambda 
nnoremap <buffer> <Space> <C-w>w

nmap <buffer><silent> == :call Scheme_indent_top_sexp()<cr>

let g:slimv_browser_cmd = "dillo"

" Indent a toplevel sexp.
fun! Scheme_indent_top_sexp()
    let pos = getpos('.')
    silent! exec "normal! 99[(=%"
    call setpos('.', pos)
endfun
Что вам отсюда может быть нужно? Сначала корректируется параметр lispwords - он перечисляет список слов, которые требуют "лисповый" стиль индентации. Из числа lispwords исключаем if, чтобы его индентация соответствовала требованиям http://dept-info.labri.u-bordeaux.fr...dentation.html. Затем добавляем несколько лиспослов, которые виму почему-то неизвестны.

Затем пара мапов: в режиме вставки C-\ даёт лямбду (баловство) и более важное: в нормальном режиме пробел переключает между окнами. Удобно прыгать из файла в репл и обратно.

Дальше == перемапливается на функцию, индентирующую с-выражение верхнего уровня, содержащее курсор. Это полезнее, чем дефолт (индентовать строку). Функцию откуда-то скопипастил вместе с названием.

Ну и в качестве браузера, в котором открывается HyperSpec, я себе назначил dillo.
2
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 21:26
Ответы с готовыми решениями:

Возможности и ограничения диалектов Лиспа
Предлагаю обсудить возможности и ограничения диалектов Лиспа.

Существуют ли IDE для лиспа под Ubuntu?
Добрый день! Посоветуйте, пожалуйста, какую-нибудь IDE для лиспа под ubuntu, если такая имеется. ...

Библиотека для лиспа
Здравствуйте. Если можно, подскажите ресурс с библиотекой lib-k.lsp

Библиотека для доступа к win32 из лиспа
Добрый день! Такая библиотека ищется (не зависящая от реализации Common Lisp. Пока нашёл только вот...

Подскажите программное обеспечение для лиспа
С лиспом вообще не знакома , но есть написанная программа ХХХ.lsp , диалог , программа типа доктор...

124
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
27.12.2015, 21:12 101
Надеюсь, моё время пройдёт не раньше, чем я буду лежать в могиле. Или брошу заниматься программированием.

Проект заметно продвинулся с тех пор, как я в прошлый раз сюда писал.

Наверное, главные новости вот такие (всех не упомню):
- я больше не пользуюсь EMACS для работы с лиспом - работаю всё время только через clcon
- для установки под Windows теперь нужно всего лишь скачать архив и распаковать его
- процесс установки под Linux упрощён и более-менее документирован
- при редактировании файла учитывается текущий пакет и таблица чтения (поддержка таблицы чтения более мощная, чем в SLIME/EMACS).
- работает продолжение символа
- по f1 вызывается справка по встроенным функциям и по некоторым библиотекам

Разработка теперь идёт очень медленно, потому что есть другие дела. Планы скромны и на первом месте стоит локализация. Ну и правка ошибок, конечно же.

Вот тут есть страничка новостей:
https://bitbucket.org/budden/clcon/s...e-view-default
3
vlisp
501 / 475 / 111
Регистрация: 10.08.2015
Сообщений: 1,674
Завершенные тесты: 1
28.12.2015, 00:37 102
Цитата Сообщение от budden Посмотреть сообщение
Надеюсь, моё время пройдёт не раньше, чем я буду лежать в могиле.
Не хочу вас расстраивать, но под виндовс - это мрак какой-то. Скачал 70 мб и не могу элементарно запустить свой код. Философия программ под виндовс основывается на максимальной простоте использования. Что есть лисп? Это интерпретатор и выражение, которое он интерпретирует. Достаточно всего 4 кнопки, чтоб все работало: открыть, загрузить, сохранить и закрыть... все... все эти емаксоподобные навороты... наверно оправданы под линукс, но под виндовс человек который слышал о лиспе краем уха, как я например... просто беспомощен перед этой громадой окон и сообщений об ошибках...
1
Vaderkos
77 / 77 / 5
Регистрация: 31.03.2015
Сообщений: 436
28.12.2015, 12:01 103
vlisp, Согласен, мне например как новичку тоже сложно. До сих пор не нашел ide которая мне бы подходила, так и сижу консоль+sbcl+sublime text или lispIDE+sbcl.
0
_sg
3939 / 3715 / 258
Регистрация: 12.05.2012
Сообщений: 2,603
29.12.2015, 06:37 104
Catstail, предлагаю перенести посты в отдельную тему и закрепить, например "Предложения по реализации среды разработки clcon".
0
antares0
242 / 111 / 8
Регистрация: 12.05.2015
Сообщений: 166
29.12.2015, 06:53 105
Цитата Сообщение от _sg Посмотреть сообщение
Catstail, предлагаю перенести посты в отдельную тему и закрепить, например "Предложения по реализации среды разработки clcon".
Приклепленных тем у нас уже и так многовато. А если не крепить то утонет в студенческих. Как есть мне кажется оптимальным. А вот начальный пост передать в faq не только по vim-у.
0
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
29.12.2015, 11:45 106
vlisp, вы вряд ли меня расстроили

Если у вас не получается начать работу, прочитайте "demo tour", на него есть ссылка с главной страницы проекта. Вот прямая ссылка:

https://bitbucket.org/budden/clcon/s...e-view-default

Там описано, как работать с файлами, да и вообще, как работать в среде.

Если совсем коротко:
- открыть файл лиспа - это File/Open (файл должен иметь расширение .lisp) или Control-O
- компилировать и загрузить файл - F7
- сохранить - Control-S или File/Save
- закрыть - Control-W (как в браузере)

Много отладочных сообщений выводится, потому что это альфа-версия. Вы можете поучаствовать в разработке и побыстрее сделать альфу бетой, а затем релизом.

Добавлено через 1 минуту
Vaderkos, вам тоже советую полностью проработать Demo Tour. Этот труд окупится за один день работы. Работа в консоли - это просто ад по сравнению с работой даже в такой ещё сырой среде, как clcon.
2
vlisp
501 / 475 / 111
Регистрация: 10.08.2015
Сообщений: 1,674
Завершенные тесты: 1
29.12.2015, 16:55 107
Цитата Сообщение от budden Посмотреть сообщение
- открыть файл лиспа - это File/Open (файл должен иметь расширение .lisp) или Control-O
Вот тут отдельная песня... В виндовс, выбор файла с любым расширением лежит в самом конце списка, то есть когда ни один вариант не походит. В верху же обычно находится вариант Выбрать все файлы поддерживаемых расширений, в данном случае lsp, lisp tcl... Далее идут каждое расширение по очереди... Откройте paint и посмотрите как это сделано... А у вас Фильтр не выполняет своих функций по умолчанию
1
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
31.12.2015, 10:39 108
Это мелочь, до неё руки не скоро дойдут. Можете поправить и прислать пулл реквест.
2
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
16.02.2016, 23:15 109
Обновил версию среды и выложил видео про неё: https://www.youtube.com/watch?v=nMhwvZ56jHU
4
Griefman
6 / 6 / 0
Регистрация: 29.02.2016
Сообщений: 17
27.12.2016, 04:20 110
Установил CLISP 2.48, но очень мелкий шрифт в окне. Как его увеличить?
0
_sg
3939 / 3715 / 258
Регистрация: 12.05.2012
Сообщений: 2,603
27.12.2016, 10:58 111
Griefman, Возможно, в меню - Options > Mule > Set Font или Shift + левая кнопка мыши
1
Griefman
6 / 6 / 0
Регистрация: 29.02.2016
Сообщений: 17
27.12.2016, 16:22 112
Да, почти, ПКМ на пиктограмме -- Свойства -- Шрифт.
1
Catstail
Модератор
24165 / 12153 / 2179
Регистрация: 12.02.2012
Сообщений: 19,737
09.02.2017, 20:01 113
Наконец-то обновил версию HomeLisp на сайте http://homelisp.ru!
5
helter
Эксперт по математике/физике
3813 / 2839 / 307
Регистрация: 12.03.2013
Сообщений: 5,175
10.02.2017, 15:20  [ТС] 114
Portacle: SBCL + Emacs + Quicklisp, призвано работать из коробки на виндоус, линуксе и маке, в разработке.
https://shinmera.github.io/portacle/
3
vlisp
501 / 475 / 111
Регистрация: 10.08.2015
Сообщений: 1,674
Завершенные тесты: 1
12.03.2017, 19:12 115
У кого-нибудь есть успешный опыт связки LispIDE и SBCL?
У меня в консоли вываливается ошибка
fatal error encountered in SBCL pid 4280(tid 0000000000325F70):
can't find core file at C:Program Files/sbcl/lib/sbcl//sbcl.core



<ERROR>: Child process ended
Но дело в том что sbcl установлен в C:\Program Files\Steel Bank Common Lisp\1.3.15 а папки lib нет вообще. сам файл sbcl.core лежит рядом с экзешником
0
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
14.03.2017, 11:06 116
Для успешного нахождения core его нужно либо передать в командной строке (--core имя файла), либо должна быть задана переменная окружения SBCL_HOME. Но почему бы тебе не подключиться к разработке моей среды? У меня установка состоит в том, что нужно скачать архив и распаковать его. Есть поддержка дебаггера (это очень большое преимущество), инспектор, переход к определению. А последний коммит сделан не 7 лет назад, а 9 часов назад.

Добавлено через 30 секунд
Ща только залью новый архив...

Добавлено через 43 минуты
Залил
0
vlisp
501 / 475 / 111
Регистрация: 10.08.2015
Сообщений: 1,674
Завершенные тесты: 1
14.03.2017, 23:33 117
Цитата Сообщение от budden Посмотреть сообщение
Но почему бы тебе не подключиться к разработке моей среды?
насколько я помню, я довольно критически отнесся к сему творению, ввиду того что оно не дотягивает до стандартов МС, даже 10 летней давности.
0
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
16.03.2017, 08:47 118
"Если хочешь изменений, стань сам этими изменениями". Тебе не понравилось, что у меня нет фильтра по файлам *.lisp. С моей точки зрения, это совершенно неважно, но я готов принять от тебя патч (там нужно несколько строк всего). Но если мы сравним мою среду и LispIDE, то в моей среде SBCL работает и присутствует отладчик, которого в LispIDE нет. Т.е. LispIDE это максимум "текстовый редактор с окном REPL", а у меня настоящая IDE. Впрочем, как хочешь.
1
vlisp
501 / 475 / 111
Регистрация: 10.08.2015
Сообщений: 1,674
Завершенные тесты: 1
16.03.2017, 21:00 119
Цитата Сообщение от budden Посмотреть сообщение
Тебе не понравилось, что у меня нет фильтра по файлам *.lisp.
дело не только в этом, помнится мне не понравилось буквально все
0
Catstail
Модератор
24165 / 12153 / 2179
Регистрация: 12.02.2012
Сообщений: 19,737
03.07.2017, 19:20 120
Выложил портабельную версию HomeLisp (ядро и библиотека - 1.13.53). Скачать можно здесь
4
03.07.2017, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2017, 19:20

obj\Debug\IDE.o||In function `Z11OpenProjectv':| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|2 36|undefined reference to `GetOpenFileNam
obj\Debug\IDE.o||In function `Z11OpenProjectv':|...

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

каким образом пожна подключить на мать с 2 IDE выходами и 2 SATA 3 жестких диска IDE и 2 CD-ROM IDE?
Доброго вам времени суток Можете подсказать каким образом пожна подключить на мать с 2 IDE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru