我正在尝试将autoclose.vim安装到Vim中。我注意到我没有~/.vim/plugin文件夹,所以我不小心做了一个~/.vim/plugins文件夹(注意插件中额外的“s”)。然后,我将au FileType python set rtp += ~/.vim/plugins添加到我的.vimrc中,因为根据我所读到的内容,这将允许我自动获取该文件夹中的脚本。
直到我意识到我的错误,并从“plugins”中取出了额外的“s”,插件才为我加载。我很困惑,因为这个新路径甚至没有在我的运行时路径中定义。我基本上是想知道为什么这个插件在~/.vim/plugin中加载而不是在~/.vim/plugins中加载
发布于 2013-06-16 07:37:42
:help load-plugins概述了插件是如何加载的。
仅向rtp添加文件夹是不够的;它必须有一个plugin子目录。例如,给定:set rtp+=/tmp/foo,将检测并加载文件/tmp/foo/plugin/bar.vim,但/tmp/foo/plugins/bar.vim和/tmp/foo/bar.vim都不会检测和加载。
发布于 2013-06-16 13:13:03
你在set rtp+=...的正确轨道上,但它有更多的东西(rtp是非递归的,帮助索引,许多角落的情况)比眼睛看到的,所以它不是一个非常好的主意自己做。除非你已经准备好应对长达数月的生产率下降。
如果你想把所有的插件存储在一个特殊的目录中,你应该使用一个合适的runtimepath/插件管理解决方案。我推荐Pathogen (rtp-manager)或Vundle (插件管理器),但还有很多其他的。
发布于 2013-06-16 18:14:47
除了@Nikita Kouevda回答:在FileType事件上修改rtp可能太晚了,vim无法从修改的运行时路径加载任何插件:如果此事件是在vimrc源码之后启动的,则不能保证来自新添加的插件将被加载;如果此事件是在VimEnter事件之后启动的,则可以保证来自新添加的插件不会自动源码。
如果只想在编辑python文件时自动关闭源代码,则应该使用:au FileType python :source ~/.vim/macros/autoclose.vim (注意:macros或除plugin之外的任何其他子目录和$VIMRUNTIME中的目录,甚至是在runtimepath中找不到的任何目录)。
如果你只想在编辑python文件时使用自动关闭,你应该查看插件源代码和文档,插件端必须有支持才能工作。
//或者,如果autoclose不支持此功能,请使用上面段落中的:au FileType命令,但在source前添加记录vim状态的内容(命令、映射和自动命令),在source后面添加相同的内容,找出状态中的差异,如果文件类型不是python,则删除每个:au BufEnter上的差异,否则恢复它们: hacky,可能会引入奇怪的错误。状态记录和差异确定代码的示例可以在here中找到。
https://stackoverflow.com/questions/17128878
复制相似问题