Ubuntu 18.04下配置Vim/Nvim实现C# .NET Core开发自动补全
解决Ubuntu 18.04下Neovim 0.2.2的C#自动补全配置问题
我之前在类似环境里踩过Omnisharp的坑,给你一套亲测有效的配置步骤,一步步来应该能解决问题:
1. 正确安装Omnisharp-Roslyn服务器
Omnisharp-vim完全依赖这个后端服务,之前配置失败大概率是服务器路径不对或者版本不匹配。针对你的.NET Core 2.0环境,按以下步骤操作:
- 创建一个存放服务器的目录:
mkdir -p ~/.omnisharp/omnisharp-roslyn - 下载对应.NET Core 2.0兼容的Omnisharp-Roslyn发布包(Linux x64版本),解压到上面的目录:
(注:v1.34.16是和.NET Core 2.0兼容的稳定版本,别选太新的,避免版本冲突)cd ~/.omnisharp/omnisharp-roslyn wget https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v1.34.16/omnisharp-linux-x64.tar.gz tar -xzf omnisharp-linux-x64.tar.gz
2. 配置Omnisharp-vim插件
打开你的Neovim配置文件~/.config/nvim/init.vim,添加以下配置:
" 指定Omnisharp-Roslyn服务器路径 let g:omnisharp_server_path = expand('~/.omnisharp/omnisharp-roslyn/OmniSharp.dll') " 启用Roslyn后端 let g:omnisharp_use_roslyn = 1 " 自动启动服务器 let g:omnisharp_auto_start = 1 " 补全相关基础配置 set completeopt=menuone,noinsert,noselect set shortmess+=c
3. 配置补全引擎(Deoplete为例)
Neovim 0.2.2推荐用Deoplete作为补全引擎,它和Omnisharp-vim兼容性很好:
- 首先用插件管理器(比如Vundle或Plug)安装Deoplete和Omnisharp-vim:
如果用Vundle,在init.vim里加:
然后运行Plugin 'Shougo/deoplete.nvim' Plugin 'OmniSharp/omnisharp-vim':PluginInstall完成安装。 - 接着添加Deoplete和Omnisharp的联动配置:
let g:deoplete#enable_at_startup = 1 let g:deoplete#sources#omnisharp#enabled = 1 " 自动触发补全的延迟(可根据需求调整) let g:deoplete#auto_complete_delay = 200
4. 实用键位映射(可选但推荐)
在init.vim里加一些常用的C#开发快捷键,提升效率:
" 跳转到定义 nnoremap <silent> gd :OmniSharpGotoDefinition<CR> " 显示代码文档(类似VS的F1功能) nnoremap <silent> K :OmniSharpDocumentation<CR> " 重命名符号 nnoremap <silent> <F2> :OmniSharpRename<CR> " 格式化代码 nnoremap <silent> <C-F> :OmniSharpCodeFormat<CR>
5. 验证配置
- 打开一个已有的.NET Core项目中的
.cs文件,输入:OmniSharpStatus命令,如果显示Server running说明后端服务启动成功。 - 输入代码(比如
Console.),应该会自动弹出补全列表,选择后按回车即可完成补全。
如果还是有问题,检查以下几点:
- 确认
dotnet命令能正常运行(确保你的.NET Core 2.0环境无异常) - 检查Omnisharp-Roslyn的路径是否正确,没有拼写错误
- 查看Neovim的日志
:messages,排查是否有具体报错信息
内容的提问来源于stack exchange,提问作者Eskinder




