我已经尝试了几种方法来让它工作,但似乎没有简单的方法。是的,有大量的插件和配置。但截至 2019 年 10 月,它们无法正常工作。
- OmniSharp-Vim客户端需要配置,它仅涵盖 C#,它列出了不再工作的插件集成(尝试选择它用于 ALE 中的 linting)。
- YouCompeleteMe应该可以,但它很大而且看起来臃肿。
- Deoplete没有 C# 的源代码,我发现配置已过时。
- Coc.nvim甚至没有列出 C# 和“非官方”配置有问题(如 this )。除了 Coc.nvim 似乎是 VS Code 的外星人。
- LanguageClient-neovim我没有找到合理的配置,似乎是因为 C# LSP server需要 .sln 文件。
所以这似乎是 csharpers 应该去 VS(或 Rider),那是 MS 提出 LSP 的时候。你如何让 IDE 像 nvim 一样与 C# 一起工作?
基本上客户端应该像这样启动服务器并使用 LSP。
~/.cache/omnisharp-vim/omnisharp-roslyn/run -s <PATH TO SLN OR DIR>
最佳答案
我刚刚让 omnisharp/ale 通过全新安装成功运行。您可能想要完全卸载 omnisharp(~\AppData\Local\omnisharp-vim
或 ~/.omnisharp
)以防万一您有旧版本。
你没有提到你的操作系统;我在 Windows 10 和 Mac OS 中都有这个工作。如果您使用的是 Mac 操作系统,请确保先brew install libuv
。
我的环境
- Windows 10 (v1903) 和 Mac OS 10.14.6
- Vim 8.1.2244
- dotnet core 3.1 - 我希望 3.0 也能正常工作
说明
首先,我正在使用 vim-plug作为我的插件管理器来处理安装。我使用 vim-plug 的自述文件中的 bash/powershell 片段将它安装在 Windows 和 Mac OS 中。
然后我将以下内容添加到我的 vimrc(~\_vimrc
在 Windows 上,~/.vimrc
在 Mac OS 上):
"vim-plug config
call plug#begin()
Plug 'OmniSharp/omnisharp-vim'
Plug 'dense-analysis/ale'
call plug#end()
" plugin config
let g:OmniSharp_server_stdio = 1
重新启动 vim,然后运行 :PlugInstall
。它会为您克隆 omnisharp 和 ale。
接下来,找到一些 C# 解决方案,并确保在命令行构建解决方案(例如,dotnet build
应该无误地完成)。如果您还没有 SLN 文件,您还需要一个(dotnet new sln
然后 dotnet sln add MyProj.csproj
)
选择一个 C# 文件并在 vim 中打开它。您应该会看到以下通知:
如果安装没有自动启动,您可以使用 :OmniSharpInstall
启动它。安装需要一两分钟在终端窗口中下载。安装完成后,重新打开vim,执行:cd\path\to\my\solution
,确保vim内部的工作目录是正确的。然后打开一个文件,例如:e MyProj\Program.cs
.
服务器会自动启动;不要手动启动它。在服务器启动的前几秒,我遇到了很多语法错误,之后就没有任何错误了。
要调出自动完成功能,请输入类似Console.
的内容,然后按Ctrl-x o:
上面的截图有vim-airline对于底部栏——这不是 omnisharp 的一部分,也不是必需的。
上面的屏幕截图是 Windows,但它在 Mac OS 中也能正常工作:
我的完整 vimrc is available here和我用 is available here 测试的源代码.
关于neovim/vim8 的 C# LSP 自动补全客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58627964/