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

如何让Vim中YCM支持虚拟环境补全、LSP诊断及正常Hover功能?

问题与需求

现有问题

YouCompleteMe(YCM)内置的Jedi不支持诊断功能,尝试过几种方案均存在问题:

1. YCM + LSP + Pyright

除<plug>(YCMHover)的Hover功能失效外,其余功能正常,语义补全选词时可正常弹出文档字符串。相关配置如下:

vimrc 配置:

...
let g:ycm_language_server += [
            \   {
            \       'name': 'pyright',
            \       'filetypes': [ 'python' ],
            \       'cmdline': [ 'node', substitute(system('which pyright-langserver'), '\n', '', ''), '--stdio' ],
            \   },
            \ ]
...

global_extra_conf.py 配置:

def Settings(**kwargs):
    return {
        "ls": {
            "python": {
                "analysis": {
                    "useLibraryCodeForTypes": True,
                    "typeCheckingMode": "basic",  # ["off", "basic", "strict"]
                    "logLevel": "Infomation",
                },
                "pythonPath": "/home/jizhou/venv/bin/python",
            }
        }
    }

2. YCM + LSP + jedi-language-server

Hover功能同样失效,且无法解决虚拟环境识别问题。相关配置如下:

global_extra_conf.py 配置:

def Settings(**kwargs):
    return {
        "ls": {
            "diagnostic": {"enable": True},
            "hover": {"enable": True},
            "workspace": {
                "environmentPath": "~/venv/bin/python"
            },
        }
    }

3. Syntastics + Pylint

功能可用,但存在明显短板:无法在插入模式下实时检查,开启文件打开时的检查会拖慢Vim启动速度。

核心需求

能否实现YCM同时具备以下能力:

  • 支持虚拟环境下的模块补全
  • 具备LSP级别的快速错误检查能力
  • 不影响Vim运行性能
  • Hover功能正常工作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:52:07