首页 > 解决方案 > 如何动态切换(Vimplug)插件?

问题描述

在多个实例上使用 COC 确实会对我的 intel i3+4GB 机器造成影响。
所以我想知道我是否可以按需切换它。
我已经设法在默认情况下将其关闭并使用 Vimplug 的内置功能将其打开,如下所示。

Plug 'neoclide/coc.nvim', {'branch': 'release', 'on': 'CocToggle' }

但是,我不确定如何将其关闭。
任何帮助将不胜感激!

PS:我已经尝试过CocDisable并且没有注意到任何可以最大限度地减少资源使用的实际好处,例如杀死COC为每个实例启动的大量节点进程!

解决方案

我最终为我的用例编写了以下函数。

Plug 'neoclide/coc.nvim', {'branch': 'release' }
let g:coc_start_at_startup = 0

let s:coc_enabled = 0
function! ToggleCoc()
   if s:coc_enabled == 0
      let s:coc_enabled = 1
      CocStart
      echo 'COC on'
   else
      let s:coc_enabled = 0
      echo 'COC off'
      call coc#rpc#stop()
   endif
endfunction
nnoremap <silent> <leader>h :call ToggleCoc()<cr>

标签: vimvim-pluginneovim

解决方案


我的用例(我使用 vim-plug)可能会有所不同,但它可能会有所帮助。通常我的书呆子被禁用,直到我通过映射调用它

Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
nnoremap <F2> :NERDTreeToggle<cr>

而且我有一个功能来加载启动时禁用的任何插件

if !exists('*LoadPluginFunction')
    fun! LoadPluginFunction(pluginname)
        let l:curpos = getcurpos()
        execute plug#load(a:pluginname)
        call cursor(l:curpos[1], l:curpos[2])
        return ''
    endfun
endif
command! -nargs=1 LoadPlugin :call LoadPluginFunction(<q-args>)

如果我想多次加载它,我会调用:

:LoadPlugin nerdtree

最后我找到了一个可以帮助你的 coc 选项:

let g:coc_start_at_startup = 0

你可以启动你的 vim 并创建一个映射来手动加载 coc 插件


推荐阅读