2012-07-03 7 views
3

Это очень простая функция Схемымит-схема ВИМ slimv: «чтения ошибка: нет функции отправки определяется для # F»

(define member? 
    (lambda (a lat) 
    (cond 
     ((null? lat) #f) 
     (else (or (eq? (car lat) a) 
       (member? a (cdr lat)) 
       )) 
    ) 
    ) 
) 

Однако, когда я нажал , д или , F в Vim для запуска этой функции, есть ошибка

/home/oo/tmp/t.scm:64 read-error: no dispatch function defined for #\F

Line: 4, Column: 21, File-Position: 64

Stream: #<SB-SYS:FD-STREAM for "file /home/oo/tmp/t.scm" {AC84DA9}>

enter image description here

+2

Вы не можете выполнить код схемы с помощью реализации Common Lisp. Здесь, похоже, вы пытаетесь запустить его на SBCL. –

+0

@ ChrisJester-Young, спасибо. Я прочитал [эту статью] (http://kovisoft.bitbucket.org/tutorial.html), чтобы настроить мой vimrc, я не знаю, как его изменить, чтобы запустить файл mit-sheme. Я использую ubuntu 12.04 в качестве моего ноутбука os. – pvd

ответ

7

Крис уже указал, что йо u попытался использовать код схемы с общим сервером Lisp swank. Вам нужно запустить Scheme swank server (например, swank-mit-scheme.scm, также входящий в Slimv). Обычно Slimv должен автоматически определять схему MIT на Linux без каких-либо настроек в .vimrc. Для правильной работы автоопределения вам понадобится MIT Scheme и команда scheme.

Предлагаю удалить любые настройки, связанные с Slimv, с вашего .vimrc. Затем загрузите .scm в Vim и введите следующую команду:

:echo SlimvSwankCommand()

Если схема была автоопределение, то это должно напечатать команду, которая запускает Суонк сервер Scheme (поиск swank-mit-scheme.scm на выходе). Если автоопределение не удалось, то либо у вас нет команды scheme, либо Slimv не нашел swank-mit-scheme.scm. В этом случае вам нужно сообщить Slimv команде, чтобы запустить сервер Scheme swank. Вы можете сделать в добавив аналогичную команду в .vimrc:

let g:slimv_swank_cmd = '! xterm -e scheme --load /your-path-to/slime/contrib/swank-mit-scheme.scm &'

Но сделать это только тогда, когда не срабатывает автоопределение. Если вам нужна дополнительная помощь, пожалуйста, свяжитесь со мной, я автор Слимва.

+0

большое спасибо. команда в моей системе :! xterm -iconic -e "scheme" --load "/home/oo/.vim/bundle/slimv/slime/contrib/swank-mit-scheme.scm" & – pvd

+0

почему slimv всегда помещает правые круглые скобки **) * * в отдельной строке? – pvd

+1

Это называется «электрический возврат» и может быть отключен через 'let g: paredit_electric_return = 0'. Закрытие ')' в отдельных строках собирается, когда вы нажимаете ')' в конце строки. Электрические возвраты облегчают редактирование линии, потому что внутренние линии формы сбалансированы, вы можете легко обменивать строки, вам не нужно беспокоиться о дополнительных непревзойденных парадах. См. [This] (http://img8.imageshack.us/img8/9479/openparen.gif) для демонстрации. –

 Смежные вопросы

  • Нет связанных вопросов^_^