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

如何让Neovim/Vim8的C# LSP自动补全客户端正常工作?

我完全懂你这种折腾半天却没结果的挫败感——2019年那会儿C#在Neovim/Vim8里的LSP支持确实是个大坑,各种插件要么配置繁琐要么直接失效,感觉微软推LSP的初衷好像没落地到Vim生态里。不过别放弃,我当时折腾出了一套相对靠谱的方案,用OmniSharp-Vim配合一些调整就能实现类IDE的C#开发能力,下面给你一步步说:

第一步:搞定OmniSharp-Vim的核心配置

OmniSharp-Vim确实需要手动配置,但只要参数设对,它就是当时对C#支持最稳定的选项。

  • 先确保你已经通过插件管理器(比如Vim-Plug)安装了OmniSharp-Vim,然后在你的init.vim(Neovim)或.vimrc里添加以下配置,把你指定的服务器启动命令整合进去:

    " 指定OmniSharp-Roslyn服务器的路径
    let g:OmniSharp_server_path = '~/.cache/omnisharp-vim/omnisharp-roslyn/run'
    
    " 设置服务器启动参数,自动关联当前项目的sln或目录
    let g:OmniSharp_server_options = {
          \ 's': expand('%:p:h')  " 自动获取当前打开文件的父目录,OmniSharp会自动找该目录下的.sln
          \ }
    

    如果你的项目结构特殊,也可以把s的值直接改成固定的sln文件绝对路径,比如'/home/yourname/projects/MyApp/MyApp.sln'。

  • 解决ALE集成失效的问题:其实不是真的失效,只是需要手动指定ALE用OmniSharp做代码检查,加这段配置:

    let g:ale_linters = {
          \ 'cs': ['omnisharp']
          \ }
    let g:ale_cs_omnisharp_executable = g:OmniSharp_server_path
    

    这样ALE就能正常调用OmniSharp做语法检查、静态分析了。

第二步:完善自动补全功能

你提到的Deoplete、YCM要么过时要么冗余,其实OmniSharp-Vim本身就自带补全能力,或者可以配合轻量的补全插件:

  • 用OmniSharp-Vim自带的补全:在配置里加个插入模式的映射,触发补全:

    inoremap <C-x><C-o> <Plug>(omnisharp_auto_complete)
    

    这样在插入模式下按Ctrl+x Ctrl+o就能触发C#代码的自动补全,包含类、方法、属性这些内容。

  • 如果想要更智能的补全体验,2019年那会儿可以试试deoplete-omnisharp插件(注意找兼容当时版本的分支),安装后Deoplete会自动调用OmniSharp的补全源,不用额外配置太多。

第三步:添加IDE常用功能映射

把这些常用操作绑定到快捷键,就能实现类IDE的开发体验:

  • 跳转定义:nnoremap gd <Plug>(omnisharp_go_to_definition)
  • 查找引用:nnoremap gr <Plug>(omnisharp_find_references)
  • 重命名符号:nnoremap rn <Plug>(omnisharp_rename)
  • 查看文档:nnoremap K <Plug>(omnisharp_documentation)
为什么这个方案可行?

当时其他插件要么没适配C# LSP的特殊要求(比如必须关联.sln文件),要么已经停止维护,而OmniSharp-Vim是专门针对C#开发的,和OmniSharp-Roslyn服务器的兼容性最好。你指定的启动命令~/.cache/omnisharp-vim/omnisharp-roslyn/run -s <PATH TO SLN OR DIR>,其实就是通过g:OmniSharp_server_path和g:OmniSharp_server_options来配置的,插件会自动把这些参数拼接起来启动服务器,不用手动敲命令。

我当时也是试遍了所有你提到的插件,最后还是回到OmniSharp-Vim,调整配置后终于能用了。虽然不像VS/Rider那样开箱即用,但基本的补全、代码检查、跳转这些核心功能都能搞定,满足日常开发没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:24:31