代替YCM,当前vim最强自动补全方案

本文介绍了vim自动补全方案,重点推荐了coc.nvim,它能替代YCM,提供语义补全、片段补全、定义跳转等功能。详细讲述了coc.nvim的安装、使用和配置,包括修复定义跳转卡住的问题,以及自定义补全源的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更多分享内容可访问我的个人博客

https://www.niuiic.top/

本文介绍 vim 自动补全方案。主要采用更强大的 coc.nvim 插件来替代 YCM。

vim 自动补全

前言

自动补全对于任何一个试图取代 IDE 的编辑器的重要性不言而喻。想要将 vim 打造为最契合自己的 IDE,无论如何都不能少了强大的自动补全功能。

coc.nvim 介绍

coc.nvim 是针对 neovim 开发的的功能非常强大,完全可以替代 YCM,带来更加优越的补全体验。包括语义补全、片段补全、定义跳转、文档查阅、静态检查等等。

同时 coc.nvim 也是一个全新的插件平台,除了其原生插件外,理论上也支持所有纯 JS 实现的 vscode 插件。拥有 coc.nvim,就拥有了一个异步插件平台。

coc.nvim 安装

coc.nvim 需要nodejs支持。安装nodejs后,用插件管理器安装 coc.nvim 即可。具体可参考其github 主页

使用 coc.nvim 进行补全

coc.nvim 的补全可以采用安装插件或者配置 lsp 实现。

语义补全及静态检查

以 rust 语言为例,可以直接使用:CocInstall安装coc-rust-analyzer插件(会自动安装rust-analyzer)。也可以在安装rust-analyzer后在 coc.nvim 的配置文件中配置。使用:CocConfig打开配置文件,写入

{
   
  "languageserver": {
   
    "rust": {
   
      "command": "rust-analyzer",
      "filetypes": ["rust"],
      "rootPatterns": ["Cargo.toml"]
    }
  }
}

注意command必须保证可用。

关于coc插件以及lsp配置的具体内容可以参考coc.nvim wiki

到此,rust语言的自动补全已经配置完成,静态检查也同步配置完成。但仅仅如此还不可以使用。coc.nvim的自动配置在项目工程中才能起作用。如单独编写一个main.rs,则不会有语义提示。必须以cargo new demo新建一个工程,插件检测到Cargo.toml后才会启动语义的自动补全。当然也有可以直接在单文件中提示的特例,如markdown语言,本身就不存在工程的概念。

片段补全

安装coc-actions插件。

再在coc-snippetscoc-ultisnips中选择一个或全选即可。注意需要同步安装honza/vim-snippetsSirVer/ultisnips

自定义snippets可见另一篇博客

自定义补全源

coc.nvim默认的补全源来自当前打开的所有buffer、插件或lsp等。此外也可以自定义补全源。具体可参见coc.nvim wiki

下面以补全markdown中的latex语法为例,展示如何自定义补全源。

创建目录~/.config/nvim/autoload/coc/source。这里以linux系统为例,其他系统的位置可以自行参考wiki。

创建latex.v

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值