vimls-go 0.1.0:用 Go 写的 Vim script / Vim9 语言服务器

chemzqm 2026-09-06 01:11 1

最近写了一个 Go 实现的 Vim script / Vim9 script 语言服务器 vimls-go,刚发布了 0.1.0 ,想请平时写 Vim 配置、插件的朋友试试。


项目: https://github.com/neoclide/vimls-go


下载: https://github.com/neoclide/vimls-go/releases/tag/v0.1.0


目前提供补全、hover 文档、签名提示、跳转定义、查找引用、诊断、语义高亮和重命名等功能,也支持 Vim9 import 和 autoload 的跨文件分析。格式化目前主要处理缩进。


有个我自己很需要的功能:它会扫描 runtimepath 中的 Vim 文件,并提取 doc/*.txt 里的帮助文档。写插件变量、函数或命令时,可以直接在 hover 里看到对应帮助,附带来源文件路径和行号。runtimepath 变化时会增量更新。


服务端是独立二进制,可以搭配 Vim 中的 coc.nvim 、vim-lsp 等 LSP 客户端使用。下载对应平台的文件、将可执行文件命名为 vimls 并放进 PATH 后,coc.nvim 可以这样配置:


{
"languageserver": {
"vimls": {
"command": "vimls",
"filetypes": ["vim"]
}
}
}

这是第一个发布版本,静态分析对 execute、运行时动态生成的名称等情况仍有限制,也不承诺覆盖所有语法细节。欢迎带上最小复现到 GitHub 提 issue ,尤其想了解大家实际插件和配置里遇到的误报、漏报以及补全问题。

最新回复 (9)
  • zls3201 09-06 02:45
    1
    为啥不直接用 helix 这个部署 go 环境 只要一条指令吧
  • chemzqm 楼主 09-06 05:09
    2
    @zls3201 看不懂你说的,coc.nvim 用户现在可以直接 CocInstall coc-vimls 来安装使用
  • BBCCBB 09-06 10:01
    3
    牛, 之前年糕小豆汤的那个 Vim lsp 在我这里一直报错.. 换大佬这个试试, 一直用的 coc.nvim
  • BBCCBB 09-06 10:03
    4
    但请问你这个是不是 vide coding 实现的? 看着有点像
  • chemzqm 楼主 09-06 17:08
    5
    我不清楚啥叫 vibecoding 反正活大部分是 agent 来做的,我对 go 也不熟
  • chemzqm 楼主 09-06 17:14
    6
    项目有完整测试,性能 benchmark ,对抗性审计,不执行任何用户代码,所有尽管放心使用
  • BBCCBB 09-06 22:16
    7
    简单理解, ai 写的就叫 vibe coding, 没事, 能跑.. 只要不会删本地文件就 Ok.
  • BBCCBB 09-06 22:17
    8
    我会 go 但我不会写 lsp.. 也不会解析 vimscript...
  • chemzqm 楼主 09-06 23:31
    9
    @BBCCBB 都不重要了,我也只是让 agent 学习 esbuild 、gopls 这些项目的设计思路,然后让大模型去迭代
* 帖子来源V2EX
返回