【问题标题】:Disable NeoComplCache based on filetype根据文件类型禁用 NeoComplCache
【发布时间】:2013-03-25 06:49:55
【问题描述】:

我正在尝试设置 vim,这样当我编辑 C 或 C++ 文件时,它使用 YouCompleteMe 插件完成,而其他所有内容都使用 NeoComplCache

我从 spf13 vim configuration 的 v3.0 开始。

我已将以下内容添加到我的.vimrc.bundles.local

Bundle 'Valloric/YouCompleteMe'

我已将以下内容添加到我的.vimrc.local

let g:ycm_filetype_whitelist = { 'c': 1, 'cpp': 1 }
let g:neocomplcache_force_overwrite_completefunc = 0

这似乎会为除 C/C++ 之外的所有内容禁用 YouCompleteMe,但是我不确定如何根据文件类型禁用 NeoComplCache。我试过了:

autocmd FileType c,cpp :NeoComplCacheDisable

但是,在您在缓冲区中执行某些操作之前,NeoComplCache 似乎并未真正启用。在 vim 中打开 C 或 C++ 文件时需要什么样的配置才能禁用 NeoComplCache?

【问题讨论】:

  • let g:neocomplcache_disable_auto_complete = 1 呢?
  • @romainl 不起作用。 completefunc=neocomplcache#manual_complete 第一次插入操作后。
  • 现在我记得为什么我决定不使用那个插件了。
  • @alanxz:你能发布你的最终解决方案吗?
  • @BenC:terryma 的解决方案不起作用,因为 :NeoComplCacheLock 无法正确恢复omnifunc 和complfunc。我认为我拥有的解决方案是调用此函数:NeoComplCacheDisable,但由于 NCC 的延迟初始化(它在 CursorHold 和 CursorHoldI 上初始化)这不起作用,因为此时未启用 NCC。底线:仍在寻找解决方案。

标签: vim neocomplcache


【解决方案1】:

以下是我为 my .vimrc 禁用 NeoCompleCache 的方法:

" Disable NeoComplCache for certain filetypes
if has('autocmd')
  autocmd FileType pandoc,markdown nested NeoComplCacheLock
 endif

参考资料:

【讨论】:

    【解决方案2】:

    这是我用来编辑 markdown 文件的工具,它也应该适用于 c,cpp。

    " Turn off completion, it's more disruptive than helpful
    function! s:markdown_disable_autocomplete()
      if &ft ==# 'markdown'
        :NeoComplCacheLock
      endif
    endfunction
    autocmd MyAutoCmd BufEnter * call s:markdown_disable_autocomplete()
    

    【讨论】:

    • 这不太奏效,但它引导我走上了一条成功之路。
    • 检查一下 - 我实际上并没有提出有效的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多