vim + syntastic + verilator or iverilog

若文章有錯誤請留言指證
需要轉載請通知筆者

Introduction

syntastic讓你可以在vim裡可以使用lint功能,讓你在寫code時檢查看看有沒有語法上的錯誤或者可能潛在的錯誤


Install

linter

首先要先安裝linter有兩種選擇: Icarus Verilog或是verilator,看你偏好哪一種
我是經由homebrew安裝:

$brew install verilator
$brew install iverilog

syntastic

syntastic我是使用vundle安裝,你也可以透過其他package manager安裝.請參考官方文件

透過vundle安裝(這裡我是透過vundle安裝syntastic,如果不會使用vundle,請參考Vundle官方)

Plugin 'scrooloose/syntastic'

vimrc加上以下幾行, 以下是參考syntastic官方的設定

set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

設置lintor:verilatoriverilog我都設定了,兩個都有則會一起檢查,若是第一個掛了它會自動找第二個,如果你只想使用其中一種,留著你要的那一個即可

let g:syntastic_verilog_checkers = ['verilator','iverilog']

Use

完成之後可以用:SyntasticInfo查看是否有配置完成
这里写图片描述

接下來就可以使用:SyntasticCheck開啟語法檢查功能啦
syntastic好像也有提供在:w時提供檢查的功能


Some problem

syntastic會根據filetype去開啟不同語言的linter
可以用:set filetype?看看是不是verilog

有些人會使用verilog_systemverilog的套件來讓verilog產生語法高亮,filetype則會是verilog_systemverilog,此時syntastic則不會支持

目前我的解法是在verilog_systemverilog套件裡判斷副檔名的地方更改.
本來是長這樣:

au! BufNewFile,BufRead *.v,*.vh,*.vp,*.sv,*.svi,*.svh,*.svp setfiletype verilog_systemverilog

為了同時使用syntasticverilog_systemverilog的語法高亮,我的做法是將.v檔案當成普通的verilog並讓syntastic只支持.v,我將上面改成:

au! BufNewFile,BufRead *.vh,*.vp,*.sv,*.svi,*.svh,*.svp setfiletype verilog_systemverilog

au! BufNewFile,BufRead *.v setfiletype verilog_systemverilog.verilog

也就是讓.v檔案同時有兩種filetype, .v檔案之外都當成verilog_systemverilog.


Summary

簡單來說你可以用一樣的方法去設定其他語言的linter
可以分成以下step:

1. 安裝語言相對應的linter
2. 安裝syntastic(如果本來就有可以跳此步驟)
3. 查看syntastic官方文件,看syntastic有沒有支持你的linter
4. 根據syntastic官方文件去設定你的linter

step3syntastic所支持的linter列表


Reference

  1. VIM插件: SYNTASTIC[语法检查]
  2. [資工雜筆] 建置 vim + syntastic + eslint + gcclint
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值