для этого существует замечательный плагин - VimClojure. он умеет, разумеется, подсвечивать синтаксис и делать правильные отступы, как и любой языковой плагин, но кроме того он обладает такими полезностями, как автодополнение (omni completion), документация по языку и, наконец, самое полезное - запуск REPL’а в буфере Vim’а!!!
к сожалению, последнюю функцию оказалось весьма непросто настроить. остальные работали из коробки.
приведу краткое руководство по включению плагина и настройке REPL’а (по сути дела, частично процитирую с переводом эти инструкции)
- скачиваем с сайта vim.org последнюю версию плагина.
для меня это была версия 2.2.0. вполне возможно, что в следующей версии надо будет делать что-то другое, хотя скорее всего изменения будут в сторону упрощения. - распаковываем архив в ~/.vim (или в ~\vimfiles на винде) так, чтобы соответствующие папки попали в соответствующие, если те уже существуют.
- прописываем (странно, если у кого-то это ещё не сделано) в ~/.vimrc (или ~\_vimrc на винде) следующие строчки:
set nocompatible
filetype plugin indent on
syntax on
желательно в таком порядке и где-нибудь вверху файла.
всё, теперь основные функции плагина будут работать. одна из них кстати - это замечательная подсветка скобочек: они подсвечиваются парами разными цветами радуги! так сразу видно вложенность и читабельность кода намного повышается. для этого надо включить соответствующую опцию:
let g:vimclojure#ParenRainbow = 1
чтобы настроить интерактивную часть плагина, нужно произвести следующие манипуляции:
- скачать vimclojure-nailgun-client-2.2.0-SNAPSHOT.zip.
- распаковать его куда следует (например туда, где установлен clojure).
- если у вас винда - то для вас уже сделан ng.exe, если нет - надо сделать в консоли make и получить исполняемый файл ng.
- прописать в .vimrc:
let vimclojure#WantNailgun = 1
let vimclojure#NailgunClient = “путь к этому исполняемому файлу/ng” - скачать server-2.2.0-SNAPSHOT.jar.
- теперь надо запустить (и это придётся делать каждый раз, когда вы будете начинать работу заново) этот сервер:
java -cp clojure-1.2.0/clojure.jar:clojure-contrib-1.2.0/:server-2.2.0-SNAPSHOT.jar vimclojure.nailgun.NGServer 127.0.0.1 & - можно наслаждаться всякими крутыми штуками - как просмотр документации по текушему слову под курсором, или вычисление текущей строки/блока/файла, или просто запуск REPL’а в отдельном буфере.
но в 6м шаге кроется главный подвох. у меня с первого раза не получилось запустиь этот сервер. и со второго тоже. и я никак не мог понять, что я делаю не так. смысл в том, что надо просто делать всё аккуратно - надо правильно указать пути после параметра -cp (java classpath):
<путь к скачанному дистрибутиву clojure/clojure.jar>:<путь к библиотекам clojure-contrib>:<путь к серверу, который мы скачали на шаге 5>
надеюсь, эта инструкция кому-нибудь поможет.. в другой раз напишу, как установить режим редактирования с парными скобками paredit, который тоже очень и очень удобен и, пожалуй, даже обязателен при программировании на Lisp/Clojure.