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

155 天前
 xbox360

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

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

1700 次点击
所在节点    Vim
14 条回复
zwyyy456
155 天前
试试 lazyvim + mason
noahlias
155 天前
用个配置就有点复杂吗,又不是写插件
ck65
155 天前
https://nvchad.com

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

# 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
155 天前
@w568w 添加 LSP 服务器的过程也很清晰,实际上只需要修改 mason-lspconfig 的配置,最短只需要添加一行(第一步):

1. 在 mason.nvim 官网上查询 lsp 服务器名称,在 mason-lspconfig.nvim 处添加新的包;
2. 在 nvim-lspconfig 文档里查询对应的配置选项,在 mason-lspconfig.nvim 处配置 lsp 服务器;
3. 重启,完成包的安装,结束。
xbox360
155 天前
@w568w 谢谢回答,其实自动补全已经配置好了(抄别人的配置),但是新增几个 lua 配置文件,随着 neovim 和插件的更新,我只维护一个 coc.nvim 的配置文件比较轻松.
JetMac
155 天前
别折腾了,直接 Lazy.vim ,真懒人福音。啥都给你安排好,启用一下就行。想改的地方自己配一下 plugin/xxx.lua ,其他免维护。
JetMac
155 天前
像 Prisma 语法,几行代码配一下 nvim-treesitter 和 mason-lspconfig 就能高亮加格式化,真先进。
fannheyward
154 天前
welcome back to coc.nvim.
EchoWhale
154 天前
搞好了就不用动了, 基本不用维护的
fanhed
153 天前
想全套配置变得可控, 我现在还差 lsp 这部分确实比较复杂的, 我现在都没做到自己全控制.
coc.nvim 还是有点复杂, 我安装的插件当中, 就对 coc.nvim 最恐惧, 因为太复杂了, 如果这其中出了点啥毛病, 我都不知道怎么修
xbox360
144 天前
补充一点,安装完这些插件后,存储空间和启动速度都比 coc.nvim 的大和慢(大部份人应该不介意)
fanhed
96 天前
我已经完成了迁移, 然后奉劝楼主不要搞了, 我是迁移了一周时间, 还改了 nvim-cmp 的代码已经这个插件的插件的相当部分代码, 才算是完成了迁移(默认情况诸多奇怪的和 coc.nvim 行为不一致的问题), 也就是如果你对 vim/nvim 插件机制不熟悉, 不熟练地改代码, 不建议折腾了, coc.nvim 开箱即用凑合着吧, 未来这个补全可能 nvim 官方会做, 继续用着 coc.nvim 等未来更好用的插件或者官方实现吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1050968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX