Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
 
helter
Эксперт по математике/физике
3741 / 2769 / 297
Регистрация: 12.03.2013
Сообщений: 5,104
#1

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

20.04.2014, 21:26. Просмотров 22297. Ответов 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 для диалектов лиспа (Lisp):

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

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

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

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

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

Интерпретатор Лиспа
Какой интерпретатор для Лиспа поддерживает Wundows 7? Я скачал Lisp IDE, но не знаю как запустить программу. Помогите пожалуйста.

124
vlisp
443 / 412 / 103
Регистрация: 10.08.2015
Сообщений: 1,391
Завершенные тесты: 1
05.07.2017, 10:30 #121
Цитата Сообщение от Catstail Посмотреть сообщение
ядро и библиотека - 1.13.53
почему же в библиотеке написано что она версии 41 2015 года?
1
Catstail
Модератор
23527 / 11635 / 2034
Регистрация: 12.02.2012
Сообщений: 18,975
05.07.2017, 18:51 #122
А, да. Библиотека не менялась с 2015 г. А ядро менялось. Исправил.
1
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
09.10.2017, 10:33 #123
Обновил видео по своей IDE для SBCL

Добавлено через 9 часов 23 минуты
Спасибо за карму, конечно, но наутро понял, что видео отстой, начал улучшать и обнаружил более серьёзные проблемы с настройкой среды. Некогда этим заниматься сейчас. Поэтому видео снёс и ссылку на него тоже прошу удалить. Как-нибудь в другой раз.
2
_sg
3703 / 3501 / 236
Регистрация: 12.05.2012
Сообщений: 2,437
05.11.2017, 14:05 #124
ρEmacs is a preconfigured distribution of GNU Emacs editor for Microsoft Windows. Being primarily designed for Lisp-based development, it is also bundled with several other popular programming languages. If you don't need them and just want to get some benefits of the features listed below, you may install only ρEmacs and nothing else.

The components of ρEmacs distribution

GNU Emacs - the editor.
Basic enhancements (optional) - `Arjen' dark theme, Source Code Pro fonts, ido, ibuffer, uniquify, tabbar, save-place, winsaw, linum, column-marker, highlight-symbol and show-paren modes enabled by default (when relevant).
Advanced enhancements (optional) - sr-speedbar, bookmark+, yasnippet, purpose and helm packages preinstalled into elpa directory (additional configuration may be required).
Spacemacs (optional) - Emacs configuration from Star Trek.
MSYS2 - a minimalist port of Bourne Shell for Windows with the builtin `pacman' package manager.
Clojure - Clojure language implementation for JVM.
Common Lisp - a set of Common Lisp implementations:
Clozure CL
SBCL
CLISP
ABCL
ECL
Racket - a scheme dialect (former MzScheme).
Python versions:
Python 2.7 (currently only in IDLE-based REPL)
Python 3.6
Groovy - Groovy 2 programming language + Grails 3 framework.
Java
JDK - Java Development Kit from Oracle
Apache ANT
Apache Maven
Gradle
C++
MinGW 32-bit (as a part of MSYS2)
MinGW 64-bit (as a part of MSYS2)

https://rho-emacs.sourceforge.io
2
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
27.12.2017, 22:32 #125
Пытаюсь улучшить степпер для SBCL и думаю, что у меня это получится. Но неплохо бы поделиться с кем-нибудь этим трудом, т.е. чтобы кто-то ещё поработал над этим:

https://www.youtube.com/watch?v=UlXn-ujS500
1
27.12.2017, 22:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2017, 22:32
Привет! Вот еще темы с решениями:

Базовые функции Лиспа
А что относится к базовым функциям LISPa?

Компиляторы схемы/лиспа
Нужен 1. Простой в установке и настройке 2. Имеющий достаточное количество библиотек (как минимум libpng) 3. Компилирующий...

Природа Лиспа - статья
Народ. дайте ссылку на русский перевод этой статьи о Лиспе http://www.defmacro.org/ramblings/lisp.html плохо понимаю, а хочется в...

Направте по верному пути лиспа
Пожалуйста скиньте пример кода лиспа для объемной фигуры, л-т-образных. не сложных пусть даже куб с выемкой дополнительной. Я что-то в...


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

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

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