chemzqm
V2EX  ›  Vim

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

  •  
  •   chemzqm · 20h 31m ago · 802 views

    最近写了一个 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 ,尤其想了解大家实际插件和配置里遇到的误报、漏报以及补全问题。

    6 replies    2026-09-06 17:14:31 +08:00
    zls3201
        1
    zls3201  
       18h 58m ago via iPad
    为啥不直接用 helix 这个部署 go 环境 只要一条指令吧
    chemzqm
        2
    chemzqm  
    OP
       16h 33m ago
    @zls3201 看不懂你说的,coc.nvim 用户现在可以直接 CocInstall coc-vimls 来安装使用
    BBCCBB
        3
    BBCCBB  
       11h 41m ago
    牛, 之前年糕小豆汤的那个 Vim lsp 在我这里一直报错.. 换大佬这个试试, 一直用的 coc.nvim
    BBCCBB
        4
    BBCCBB  
       11h 40m ago
    但请问你这个是不是 vide coding 实现的? 看着有点像
    chemzqm
        5
    chemzqm  
    OP
       4h 35m ago via iPhone
    我不清楚啥叫 vibecoding 反正活大部分是 agent 来做的,我对 go 也不熟
    chemzqm
        6
    chemzqm  
    OP
       4h 29m ago via iPhone
    项目有完整测试,性能 benchmark ,对抗性审计,不执行任何用户代码,所有尽管放心使用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3026 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:43 · PVG 21:43 · LAX 06:43 · JFK 09:43
    ♥ Do have faith in what you're doing.