← На главную

Slimv и Vlime приносят SLIME в Vim

23.05.2026 14:55 · hackernews

Писать Lisp-код в Vim пятнадцать лет назад было тем ещё квестом. Подходящих плагинов для структурного редактирования s-выражений или встроенного REPL не существовало. Сейчас всё иначе. Главные игроки — два плагина: Slimv (от Тамаша Ковача, первая версия в 2009 году) и Vlime (от Кая З., релиз в 2017-м). Оба повторяют идею Emacs-режима SLIME, который в 2003 году запустили Эрик Марсден, Люк Горри и Хельмут Эллер.

Архитектура одинаковая: плагин запускает Swank-сервер на стороне Lisp (обычно SBCL) и общается с ним через сокет. Slimv сам таскает с собой слегка модифицированный Swank, для работы ему нужен Vim с поддержкой Python (например, vim-nox). Vlime не требует Python, но для установки Swank использует Quicklisp — при первом запуске он стягивает зависимости.

Установка несложная. Для Slimv достаточно склонировать репозиторий в ~/.vim/pack/plugins/start/slimv и запустить Vim в tmux — Swank стартует автоматически. Для Vlime нужно сначала поставить Quicklisp, потом склонировать Vlime в ~/.vim/bundle/vlime и вручную добавить путь в runtimepath. Оба плагина используют Paredit для автодополнения парных скобок, кавычек и умного переноса строк — у Slimv он встроен, для Vlime ставится отдельно.

Базовая работа с кодом: в foo.lisp пишете (format t "hello, world~%"). В Slimv жмёте , e — выражение выполняется, результат выводится в интерактивном REPL, куда можно сразу вводить новые команды. В Vlime — \ r r для подключения и \ s s для отправки кода, но его REPL не позволяет ввод: он только показывает вывод. Для «интерактивности» Vlime предлагает режим взаимодействия (\ i), где код выполняется нажатием Enter.

Отладка у обоих похожа на SLIME. Ошибка формы (square "foo") порождает окно SLDB с бэктрейсом и рестартами. В Slimv можно развернуть стек, инспектировать переменную (, i), вернуться обратно через , q (два нажатия — и вы снова в редакторе). Vlime делает то же самое: \ o f компилирует буфер, ошибка ловится, рестарты доступны через клавиатуру.

Статья написана в 2019 году, так что многие версии устарели — например, Debian 10.1, SBCL 1.4.16, Clojure 1.10.1. Но для понимания основ и выбора между Slimv и Vlime её всё ещё полезно прочитать.

Читать оригинал →