MacVim:slimv无法启动

时间:2012-04-01 21:14:51

标签: vim lisp macvim slime slimv

我正在使用MacVim(一种用于OSX的gvim)并尝试运行slimv插件。 可悲的是,它没有开箱即用。事实上,它根本没有启动。

我的设置:

  • MacVim(32位cause of this)(vim 7.3)
  • :脚本名称在列出ftplugin/slimv.vim时未列出plugin/paredit.vim
  • :设置ft?为.lisp文件显示filetype=lisp
  • :消息显示无错误
  • :文件类型 filetype detection:ON plugin:ON indent:ON
  • :echo g:paredit_loaded 1
  • :echo g:slimv_loaded E121: Undefined variable: g:slimv_loaded \ E15: Invalid expression: g:slimv_loaded
  • 使用+ python(2.7)
  • 编译

安装了SBCL和粘液 - 与emacs完美配合。 我在.vimrc中使用和不使用let g:slimv_swank_cmd = ...进行了尝试,并更改了插件页面上推荐的行

let g:slimv_swank_cmd = '!osascript -e "tell application \"Terminal\" to do script \"sbcl --load ~/.vim/slime/start-swank.lisp\""' 

let g:slimv_swank_cmd = '!sh -c "sbcl --load /Applications/MacVim.app/Contents/Resources/vim/runtime/slime/start-swank.lisp" &'
由于osascript无效,我不知道如何修复它。但是对xterm的类似调用对Linux来说已经足够了,所以我的sh调用应该没问题。 好吧,我不知道下一步该尝试什么。 :/

问题解决了,将slimv安装到〜/ .vim而不是MacVim中的vim。也许某种bug?但是,Common Lisp + vim - 我只是喜欢它。

3 个答案:

答案 0 :(得分:2)

如果:scriptnames中未列出slimv.vim且未定义g:slimv_loaded,则根本没有加载插件。我猜你没有启用文件类型插件。 Paredit是一个通用插件,但slimv.vim是一个文件类型插件,必须明确启用filetype / indent插件。尝试将这些行添加到.vimrc

filetype plugin on
filetype indent on

答案 1 :(得分:2)

因为将slimv插件移动到~/.vim修复它,我怀疑问题是MacVim的默认/Applications/MacVim.app/Contents/Resources/vim/runtime/ftplugin/lisp.vim来源于slimv提供的ftplugin/lisp/slimv-lisp.vim文件。

这两个文件(lisp.vimslimv-lisp.vim)都以这样的代码开头:

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
    finish
endif

" Don't load another plugin for this buffer
let b:did_ftplugin = 1

所以无论哪个文件首先获取都会阻止另一个文件运行,因为如果vim检测到之前运行了另一个* lisp * .vim脚本并因此设置了{finish(退出脚本)缓冲区局部变量。

您可以通过使用参数:

从命令行运行MacVim来判断这种情况
b:did_ftplugin

然后退出启动的MacVim会话,查看它创建的macvim-log.txt文件。

搜索-V20macvim-log.txt hello.lisp ,每次b:did_ftpluginlisp.vim运行时都会看到它被引用,您可以看到slimv-lisp.vim先运行,这会阻止{{1}来自工作。

将您的slimv安装从lisp.vim目录移至slimv-lisp.vim目录会更改顺序,以便在/Applications/MacVim.app/之前找到~/.vim,然后slimv将起作用。< / p>

答案 2 :(得分:0)

通过将slimv安装到〜/ .vim而不是MacVim中嵌入的vim来解决问题。也许某种bug? 但是,Common Lisp + vim - 我只是喜欢它。