V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xbox360
V2EX  ›  Vim

配置 nvim-lsp 自动补全有点复杂

  •  
  •   xbox360 · 89 天前 · 1410 次点击
    这是一个创建于 89 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本来用的是 coc.nvim,最近花了点时间把自动补全等等功能改为 nvim-cmp,nvim-lspconfig,lsp-zero.nvim,mason.nvim,mason-lspconfig.nvim 这些插件

    然后参考(抄袭)别人的配置,但考虑到后期维护这些插件的 lua 配置文件,我还是退回用 coc.nvim,不折腾了

    14 条回复    2024-08-17 18:06:11 +08:00
    zwyyy456
        1
    zwyyy456  
       89 天前
    试试 lazyvim + mason
    noahlias
        2
    noahlias  
       89 天前
    用个配置就有点复杂吗,又不是写插件
    ck65
        3
    ck65  
       89 天前 via iPhone
    https://nvchad.com

    一键到位
    xbox360
        4
    xbox360  
    OP
       89 天前
    @zwyyy456 nvim-treesitter 和 c 编译器这 2 个我都不用,所以没有用 lazyvim
    w568w
        5
    w568w  
       89 天前   ❤️ 2
    弄清楚关系就好理解了,每个插件都是各司其职,互相功能没有交集:

    # LSP

    nvim 自身有 LSP 支持,能够根据不同文件类型启动并连接到对应的 LSP 服务器。

    - nvim-lspconfig:nvim 官方维护。收集了常见 LSP 服务器的配置选项,提供统一的 Lua 配置接口,用于更改服务器的具体设置;

    # 自动补全

    - nvim-cmp:提供自动补全 UI ,可以添加插件,从不同源获得补全建议;

    - cmp-nvim-lsp:nvim-cmp 的一个插件,为 nvim-cmp 添加 LSP 源;

    # 包管理器

    - mason.nvim:一个包管理器,用于安装不是 nvim 插件的其他包和二进制程序(例如 lsp 服务器);

    - mason-lspconfig.nvim:mason.nvim 的一个插件,用于方便地启用和配置 mason 下载的 lsp 服务器程序。配置接口仍由 nvim-lspconfig 提供;

    # 其他

    - lsp-zero.nvim:没用过。看了下是个懒人配置包,没有特别去用的必要。
    w568w
        6
    w568w  
       89 天前
    @w568w 添加 LSP 服务器的过程也很清晰,实际上只需要修改 mason-lspconfig 的配置,最短只需要添加一行(第一步):

    1. 在 mason.nvim 官网上查询 lsp 服务器名称,在 mason-lspconfig.nvim 处添加新的包;
    2. 在 nvim-lspconfig 文档里查询对应的配置选项,在 mason-lspconfig.nvim 处配置 lsp 服务器;
    3. 重启,完成包的安装,结束。
    xbox360
        7
    xbox360  
    OP
       89 天前
    @w568w 谢谢回答,其实自动补全已经配置好了(抄别人的配置),但是新增几个 lua 配置文件,随着 neovim 和插件的更新,我只维护一个 coc.nvim 的配置文件比较轻松.
    JetMac
        8
    JetMac  
       89 天前
    别折腾了,直接 Lazy.vim ,真懒人福音。啥都给你安排好,启用一下就行。想改的地方自己配一下 plugin/xxx.lua ,其他免维护。
    JetMac
        9
    JetMac  
       89 天前
    像 Prisma 语法,几行代码配一下 nvim-treesitter 和 mason-lspconfig 就能高亮加格式化,真先进。
    fannheyward
        10
    fannheyward  
       88 天前   ❤️ 1
    welcome back to coc.nvim.
    EchoWhale
        11
    EchoWhale  
       88 天前
    搞好了就不用动了, 基本不用维护的
    fanhed
        12
    fanhed  
       88 天前
    想全套配置变得可控, 我现在还差 lsp 这部分确实比较复杂的, 我现在都没做到自己全控制.
    coc.nvim 还是有点复杂, 我安装的插件当中, 就对 coc.nvim 最恐惧, 因为太复杂了, 如果这其中出了点啥毛病, 我都不知道怎么修
    xbox360
        13
    xbox360  
    OP
       78 天前
    补充一点,安装完这些插件后,存储空间和启动速度都比 coc.nvim 的大和慢(大部份人应该不介意)
    fanhed
        14
    fanhed  
       30 天前
    我已经完成了迁移, 然后奉劝楼主不要搞了, 我是迁移了一周时间, 还改了 nvim-cmp 的代码已经这个插件的插件的相当部分代码, 才算是完成了迁移(默认情况诸多奇怪的和 coc.nvim 行为不一致的问题), 也就是如果你对 vim/nvim 插件机制不熟悉, 不熟练地改代码, 不建议折腾了, coc.nvim 开箱即用凑合着吧, 未来这个补全可能 nvim 官方会做, 继续用着 coc.nvim 等未来更好用的插件或者官方实现吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   874 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:19 · PVG 04:19 · LAX 13:19 · JFK 16:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.