gpt4 book ai didi

vim - MacVim:slimv 无法启动

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:59 25 4
gpt4 key购买 nike

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

我的设置:

  • MacVim(32 位 cause of this)(vim 7.3)
  • :scriptnames 不列出 ftplugin/slimv.vim 而列出 plugin/paredit.vim
  • :set ft? 显示 .lisp 文件的 filetype=lisp
  • :messages 显示没有错误
  • :filetype 文件类型检测:ON 插件:ON 缩进:ON
  • :echo g:paredit_loaded 1
  • :echo g:slimv_loaded E121: undefined variable :g:slimv_loaded\E15:无效表达式:g:slimv_loaded
  • 使用 +python (2.7) 编译

SBCL 和 slime 已安装 - 与 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,问题得到了解决。也许是某种错误?然而,Common Lisp + vim - 我就是喜欢它。

最佳答案

因为将 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 (退出脚本) b:did_ftplugin 缓冲区局部变量。

您可以通过使用以下参数从命令行运行 MacVim 来判断正在发生这种情况:

-V20macvim-log.txt hello.lisp

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

搜索 b:did_ftplugin,每次 lisp.vimslimv-lisp.vim 运行时,您都会看到它被引用,并且你可以看到 lisp.vim 先运行,这阻止了 slimv-lisp.vim 工作。

将您的 slimv 安装从 /Applications/MacVim.app/ 目录移动到您的 ~/.vim 目录将改变顺序,以便 slimv-lisp .vim 是在 lisp.vim 之前获取的,然后 slimv 就可以工作了。

关于vim - MacVim:slimv 无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9968408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com