Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 病原体和新完全性,Supertab,Youcompleteme;如何启用禁用捆绑包?_Vim_Plugins - Fatal编程技术网

Vim 病原体和新完全性,Supertab,Youcompleteme;如何启用禁用捆绑包?

Vim 病原体和新完全性,Supertab,Youcompleteme;如何启用禁用捆绑包?,vim,plugins,Vim,Plugins,我在启动时使用病原体加载插件 有时我使用neoplete插件,有时使用youcomplete插件,有时使用Supertab来完成单词,有时我根本不使用补全符。 如果这些插件都被加载到数据库中,它们就不能一起工作 这就是为什么我决定在vimrc的末尾创建一个小菜单,在那里我可以选择使用哪个补足符(我想使用的是我在vimrc中禁用的补足符)。我可以用快捷键启动它。 列表g:PATHO包含要在病原体中禁用的插件: 如果我选择使用Supertab-->从g:PATHO中删除Supertab,请保存g:P

我在启动时使用病原体加载插件

有时我使用
neoplete
插件,有时使用
youcomplete
插件,有时使用
Supertab
来完成单词,有时我根本不使用补全符。
如果这些插件都被加载到数据库中,它们就不能一起工作

这就是为什么我决定在vimrc的末尾创建一个小菜单,在那里我可以选择使用哪个补足符(我想使用的是我在vimrc中禁用的补足符)。我可以用快捷键启动它。
列表g:PATHO包含要在病原体中禁用的插件:
如果我选择使用Supertab-->从g:PATHO中删除Supertab,请保存g:PATHO并重新加载vimrc。
如果我选择使用Neocomplete-->从g:PATHO中删除Neocomplete,请保存g:PATHO并重新加载vimrc。
如果我选择使用Youcompleteme-->从g:PATHO中删除Youcompleteme,请保存g:PATHO并重新加载vimrc

这是我在我的vimrc开始时所拥有的

  if !exists("g:PATHO")
    let g:PATHO = ['YouCompleteMe','neocomplete.vim','supertab']
  endif
  let g:pathogen_disabled = g:PATHO
下面在my_vimrc中,我使用此命令将全局变量保存在我的viminfo文件中:

set viminfo+=!  
(感谢Ingo Karkat)

g:PATHO在viminfo中写入,但当我重新加载vimrc时,未找到变量g:PATHO,因为在_vimrc的开头尚未读取viminfo。
什么时候在vimrc中读取viminfo? 如何让病原体在vimrc启动时读取g:PATHO?

(希望我说清楚)

你读过《帮助启动》吗

  • 在初始化过程中,
    vimrc
    和所有插件都获得源代码后,
    viminfo
    文件在很晚的时候被读取,因此病原体将无法将您在
    vimrc
    中硬编码的默认
    g:PATHO
    viminfo
    中的默认

  • 您的
    viminfo
    文件在初始化过程的后期只读取一次,并且在会话的生命周期内不会再次读取。重新加载您的
    vimrc
    将永远不会触发重新读取,病原体或任何其他插件都不会注意到您希望持续的更改

    您可以尝试手动重新读取该文件,并在
    VimCenter
    或某些其他事件上自动执行MDS,但

  • …在会话期间修改
    g:u disabled
    变量不会产生您想要的效果:它不会从
    运行时路径中删除插件,也不会“取消”它的源代码。您可以使用该选项的不同值重新加载
    vimrc
    所有您想要的内容,结果总是一样的:没有

  • 你需要的是找到一种方法,有效地使函数和变量以及任何特定插件从Vim的内存中完全消失,而不是为这样一个奇怪的想法,甚至是为配置中有三个奇怪的完成插件找到令人信服的理由。我相信你在这里找不到



    作为补充说明,三个插件中只有一个提供。这是一个明智的设计选择,如果它更普遍,将使插件囤积者的生活更加轻松。

    谢谢,我使用youcompleteme,因为它可能是最好的,但有时我只想在手动完成模式下使用completer。你不能用CompleteMe做这件事。它不断弹出。Neocomplete具有手动完成模式(tab键)。我使用supertab完成体育拼写检查(但不用于缓冲区完成,supertab没有模糊搜索)。你知道这三个插件吗?YCM是手工完成的。是的,我知道他们,我不使用他们或任何其他选择。过去有一些关于手动完成的讨论,但我没有看到一个人使用YCM手动完成。你自己试过吗?我曾经读到,Valloric不想将YCM调整为手动完成。这不是调用手动完成,只是为了禁用YCM,除了分段触发器。请看这里:我测试了它,但它没有手动触发。顺便说一句,谢谢你的回答。i.m.o.只剩下一种可能性,直接写入vimrc文件并重新启动vim.:)