更多分享内容可访问我的个人博客
1.对自动补全部分进行加强,可以无限自定义snippets和keywords。补全能力完胜vscode。
2.使用svlangserver代替svls,提升编辑体验。
本文介绍如何使用 vim 搭建 systemverilog 编辑环境。功能包括自动补全、语法高亮、语法检查、格式化等。
注意本文内容只是针对 systemverilog 提供最基本编辑体验。关于 vim 的其他功能配置,请见vim 专栏。
语法高亮
最新版的 neovim 应该默认支持 systemverilog 语法高亮。如果你的 vim 不行的话可以尝试通过安装vhda/verilog_systemverilog.vim
插件解决。
自动补全与语法检查
更新:使用 svlangserver 代替 svls。
svlangserver 是一个相当新的 lsp,其优点包括实现了定义跳转功能、使用 verilator 编译器进行语法检查、模块调用时提示模块端口、有自带的 snippets(好像暂时不能用)、格式化文档等。虽然它还存在一定问题,但比起 svls 功能更多,值得期待其后续版本。总的来说 svls 语法检查能力可能更强,其他的比不上 svlangserver,然而语法检查最终还是要靠编译器或者 IDE,所以还是建议使用后者。
使用 svls
自动补全功能使用 lsp。本文选用 svls 作为 systemverilog 的语言服务器。
svls 使用 rust 语言编写,需要 rust 语言环境,使用 rust 包管理器 cargo 安装。或者可以从 snap 商店下载。
选择一款管理调用 lsp 的 vim 插件。本文选用 coc.nvim。在 coc.nvim 的配置文件中添加以下内容。
"languageserver": {
"svls": {
"command": "svls",
"filetypes