配置 nvim-lsp 自动补全有点复杂 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xbox360
V2EX    Vim

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

  •  
  •   xbox360 2024-06-19 20:20:32 +08:00 2987 次点击
    这是一个创建于 479 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本来用的是 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  
       2024-06-19 20:46:43 +08:00
    试试 lazyvim + mason
    noahlias
        2
    noahlias  
       2024-06-19 21:14:45 +08:00
    用个配置就有点复杂吗,又不是写插件
    mogita
        3
    mogita  
       2024-06-19 21:19:26 +08:00 via iPhone
    https://nvchad.com

    一键到位
    xbox360
        4
    xbox360  
    OP
       2024-06-19 21:20:12 +08:00
    @zwyyy456 nvim-treesitter 和 c 编译器这 2 个我都不用,所以没有用 lazyvim
    w568w
        5
    w568w  
       2024-06-19 21:20:45 +08:00   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  
       2024-06-19 21:29:13 +08:00
    @w568w 添加 LSP 服务器的过程也很清晰,实际上只需要修改 mason-lspconfig 的配置,最短只需要添加一行(第一步):

    1. 在 mason.nvim 官网上查询 lsp 服务器名称,在 mason-lspconfig.nvim 处添加新的包;
    2. 在 nvim-lspconfig 文档里查询对应的配置选项,在 mason-lspconfig.nvim 处配置 lsp 服务器;
    3. 重启,完成包的安装,结束。
    xbox360
        7
    xbox360  
    OP
       2024-06-19 21:35:33 +08:00
    @w568w 谢谢回答,其实自动补全已经配置好了(抄别人的配置),但是新增几个 lua 配置文件,随着 neovim 和插件的更新,我只维护一个 coc.nvim 的配置文件比较轻松.
    JetMac
        8
    JetMac  
       2024-06-19 21:49:03 +08:00
    别折腾了,直接 Lazy.vim ,真懒人福音。啥都给你安排好,启用一下就行。想改的地方自己配一下 plugin/xxx.lua ,其他免维护。
    JetMac
        9
    JetMac  
       2024-06-19 21:52:18 +08:00
    像 Prisma 语法,几行代码配一下 nvim-treesitter 和 mason-lspconfig 就能高亮加格式化,真先进。
    fannheyward
        10
    fannheyward  
       2024-06-20 09:39:41 +08:00   1
    welcome back to coc.nvim.
    EchoWhale
        11
    EchoWhale  
       2024-06-20 10:13:35 +08:00
    搞好了就不用动了, 基本不用维护的
    fanhed
        12
    fanhed  
       2024-06-21 01:18:17 +08:00
    想全套配置变得可控, 我现在还差 lsp 这部分确实比较复杂的, 我现在都没做到自己全控制.
    coc.nvim 还是有点复杂, 我安装的插件当中, 就对 coc.nvim 最恐惧, 因为太复杂了, 如果这其中出了点啥毛病, 我都不知道怎么修
    xbox360
        13
    xbox360  
    OP
       2024-06-30 17:22:23 +08:00
    补充一点,安装完这些插件后,存储空间和启动速度都比 coc.nvim 的大和慢(大部份人应该不介意)
    fanhed
        14
    fanhed  
       2024-08-17 18:06:11 +08:00
    我已经完成了迁移, 然后奉劝楼主不要搞了, 我是迁移了一周时间, 还改了 nvim-cmp 的代码已经这个插件的插件的相当部分代码, 才算是完成了迁移(默认情况诸多奇怪的和 coc.nvim 行为不一致的问题), 也就是如果你对 vim/nvim 插件机制不熟悉, 不熟练地改代码, 不建议折腾了, coc.nvim 开箱即用凑合着吧, 未来这个补全可能 nvim 官方会做, 继续用着 coc.nvim 等未来更好用的插件或者官方实现吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2623 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 10:36 PVG 18:36 LAX 03:36 JFK 06:36
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86