1

我阅读了源代码slimv\ftplugin\scheme\slimv-scheme.vim

    if exists( 'g:scheme_builtin_swank' ) && g:scheme_builtin_swank
        " MIT Scheme contains a built-in swank server since version 9.1.1
        return 'scheme --eval "(let loop () (start-swank) (loop))"'
    endif

我的系统里没有scheme.exe,只能找到一个c:\Program Files\MIT-GNU Scheme\bin\mit-scheme.exe

当我尝试运行C:\Program Files\MIT-GNU Scheme\bin>mit-scheme.exe --eval "(let loop () (start- swank) (loop))"时,出现错误

---------------------------
MIT/GNU Scheme terminating
---------------------------
scheme: can't find a readable default for option --band.
    searched for file all.com in these directories:
    c:\local\mit-scheme
Reason for termination:
Inconsistency detected.
---------------------------

我试图在 Vim 中加载一个 .scm 并输入以下命令:

:echo SlimvSwankCommand()

并且自动检测不成功:(

4

1 回答 1

2

您需要构建一个在 MIT Scheme 中运行 swank 服务器的命令。假设 Scheme 安装在MIT-GNU SchemeWindows 上的目录中。您还需要一个用于 MIT 方案的 swank 服务器,例如swank-mit-scheme.scm在 slimv 中(取自 SLIME)。然后从命令提示符启动 MIT Scheme 并以这种方式加载 swank 服务器:

"C:\Program Files\MIT-GNU Scheme\mit-scheme" --band "C:\Program Files\MIT-GNU Scheme\lib\all.com" --library "C:\Program Files\MIT-GNU Scheme\lib" --load "C:\Program Files\Vim\vimfiles\slime\contrib\swank-mit-scheme.scm"

如果您希望 slimv 在按下时为您运行它,,c那么您需要将上述命令嵌入其中'!start /MIN ...'并将其传递给g:slimv_swank_scheme您的_vimrc(请记住将每个包含空格的路径括在双引号中):

let g:slimv_swank_scheme='!start /MIN "C:\Program Files\MIT-GNU Scheme\mit-scheme" --band "C:\Program Files\MIT-GNU Scheme\lib\all.com" --library "C:\Program Files\MIT-GNU Scheme\lib" --load "C:\Program Files\Vim\vimfiles\slime\contrib\swank-mit-scheme.scm"'

当然,您也可以使用另一台 swank 服务器。要点是在上述命令中将完整路径传递给每个组件。我建议您首先尝试从命令提示符手动运行 swank 服务器。没事的时候可以放进去'!start /MIN ...'

于 2013-08-03T17:15:13.103 回答