You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Neovim的Quarto kickstarter为何无法自动补全引用?

调试cmp-pandoc-references补全失效的步骤

针对你遇到的Quarto文件中bib引用无法通过cmp-pandoc-references补全,但QuartoPreview正常解析的问题,按以下步骤排查:

  • 检查插件健康状态
    在Neovim中执行:checkhealth cmp和:checkhealth cmp-pandoc-references,查看输出中是否有依赖缺失、路径错误或加载失败的提示,比如pandoc未被识别、bib文件路径无效等。

  • 确认bibliography路径有效性

    1. 确保Quarto文件中的bibliography: test.bib使用WSL的Linux路径格式(避免Windows路径),若test.bib在当前文件目录下,可明确写为./test.bib。
    2. 在Neovim中执行:echo expand('%:p:h')获取当前文件的绝对路径,再通过:!ls %:p:h/test.bib验证文件是否存在且可访问。
  • 验证pandoc解析bib的能力
    在WSL终端中执行/usr/bin/pandoc --bibliography=test.bib --listings(替换为你的bib实际路径),若pandoc能正常运行且无报错,说明bib文件本身无问题;若报错,先解决pandoc与bib的兼容性问题。

  • 检查cmp触发与源状态

    1. 输入@后执行:CmpStatus,查看是否加载了pandoc_references源。
    2. 确认cmp的触发字符包含@,可在cmp配置中检查:
      cmp.setup({
        sources = cmp.config.sources({
          { name = 'pandoc_references' },
          -- 其他补全源...
        })
      })
      
  • 开启插件调试日志
    在Neovim配置中添加vim.g.cmp_pandoc_references_debug = true,重启后触发补全操作,再执行:messages查看日志,寻找解析失败的具体原因(如未找到bib文件、pandoc调用错误)。

  • 调整补全源优先级
    若其他补全源(如lsp、path)优先级过高,可能覆盖pandoc-references的结果,可在cmp配置中调高其优先级:

    cmp.setup({
      sources = cmp.config.sources({
        { name = 'pandoc_references', priority = 10 },
        { name = 'nvim_lsp', priority = 9 },
        { name = 'path', priority = 8 },
      })
    })
    

内容的提问来源于stack exchange,提问作者Tom Slee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 08:32:04