相关文章推荐
发呆的白开水  ·  Taglist-like Vim ...·  6 月前    · 
发呆的白开水  ·  Vim Tagbar Plugin · ...·  6 月前    · 

ale的介绍

Syntastic,Ale等都是vim优秀的语法检查工具,基本原理都是通过外部语法检查器(linter)运行文件,并向用户显示所有由此产生的错误。项目地址如下所示: Syntastic Ale 。两个都是优秀的语法检查插件,其中Syntastic出现的较早,在Ale出现后前者放弃维护,同时在项目介绍页也推荐了Ale,Ale支持异步执行,他的进行过程是在后台自行进行的,不会影响到你当前对于vim的操作,需要你的vim版本到8.1以上(该版本以上的vim添加了异步特性)。
他们都是通过外部语法检查器来进行语法检查的,因此需要安装对应的linter。支持的检查器对应的插件项目地址有说明。本文重点介绍verilog语言检查器的安装。该链接提供了ale支持的语言:https://github.com/dense-analysis/ale/blob/master/supported-tools.md 其中verilog支持的检查器有如下几种

  • hdl-checker
  • iverilog
  • verilator
  • vlog
  • xvlog
  • yosys

更详细的可以进入链接查看更详细的解释,本文介绍iverilog,vlog,xvlog这几种检查器安装的方式。下面的检查的演示,后续将介绍基本配置与使用方式。
在这里插入图片描述

ale的基本配置与使用

首先保证你已经安装了ale插件,安装方式见本系列的该篇博文,或者自行查看ale项目地址给出的安装方式。

查看你可用的linter

':ALEInfo’查看相关信息,其中success表明有可用的检查器
在这里插入图片描述
可以设置使用这些检查器:

"前者是需要检查语言,后面是使用的检查器,通过,间隔可以选择多个检查器
let b:ale_linters = {'verilog': ['hdl_checker', 'iverilog']}

安装iverilog——for window

Icarus Verilog,简称iverilog,号称是“全球第四大”数字芯片仿真器,并且完全开源。
iverilog项目介绍:http://iverilog.icarus.com/home
iverilog下载地址:http://bleyer.org/icarus/
选择一个安装即可。需要将在环境变量中添加检查用户/系统环境变量PATH中是否包含了iverilog和GTKWave的bin文件夹路径,记得添加环境变量后重启电脑或者是重启Windows 资源管理器~保证环境变量是生效的。使用如下命令可以查看是否安装成功

where iverilog
where vvp
where gtkwave

详细安装介绍请看这里
关于iverilog的基本使用点击这里

ale的基本配置

笔者自己的ale的配置如下

"ale for syntax check {{{
"确认你的linter那些是可用的
let b:ale_linters = ['iverilog']
let g:ale_sign_error = '>>'
let g:ale_sign_warning = '--'
" Set this. Airline will handle the rest.
let g:airline#extensions#ale#enabled = 1
function! LinterStatus() abort
    let l:counts = ale#statusline#Count(bufnr(''))
    let l:all_errors = l:counts.error + l:counts.style_error
    let l:all_non_errors = l:counts.total - l:all_errors
    return l:counts.total == 0 ? 'OK' : printf(
    \   '%dW %dE',
    \   all_non_errors,
    \   all_errors
endfunction
set statusline=%{LinterStatus()}
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
" Write this in your vimrc file
let g:ale_set_loclist = 0
let g:ale_set_quickfix = 1
"}}}

笔者将自己的配置信息包括插件与.vimrc的配置放置到了该地址
https://github.com/tyxiumud/gvim_for_verilog
其中的readme文件有基本、详细的使用方式~

Vim插件ale的BUG解决

关于ALE在verilog模式下的bug可以使用该博主的解决方案,文章如下Vim插件ale在windows下的安装配置与BUG解决
该博主提供了基本的配置,bug修复的方式进行了解释。ale的基本工作原理是通过调用相应文件的linter输出错误信息,然后使用正则表达式进行捕获,再将捕获的信息显示到界面上,错误的正则可能使得无法匹配linter输出的错误信息。有大佬提出过这个问题,也提出了解决方案,点击查看issue地址

​​​​​​ 文章目录ALE介绍ALE安装ALE配置自定义侧边提示符号自定义底部提示消息高亮显示设置状态栏提示集成linter相关设置快捷键设置ALE的bug处理Bug描述Bug分析Bug解决vlog下的修改方法iverilog下的修改方法xvlog正常原因 ALE介绍 ale是一个异步的检测插件,项目的介绍如下: ALE (Asynchronous Lint Engine) is a plugin providing linting (syntax checking and semantic error
HDL Checker 开源项目教程 hdl_checkerRepurposing existing HDL tools to help writing better code项目地址:https://gitcode.com/gh_mirrors/hd/hdl_checker 1. 项目的目录结构及介绍 HDL Checker 项目的目录结构如下: hdl_checker/ ├── bin/
ale是一款语法检查插件,与syntastic类似,但有两个明显的优势,一个是语法检查是异步执行的,因此基本不会卡,另外一个是ale默认会使用所有检查工具并发的进行检查,但它只支持Vim 8.0以上的版本,配置如下"ale let g:ale_sign_column_always = 1 let g:ale_set_highlights = 0 let g:ale_sign_error = '✗'
什么是Vim-Grammalecte? Vim-Grammalecte是一个将Grammalecte集成到Vim中的插件。 Grammalecte是法语的开源语法检查器。 有关Grammalecte的更多详细信息,请参见 。 如果您没有时间阅读帮助文件,此屏幕截图将使您了解Grammalecte插件的功能: 在GVim中(带下划线的下划线突出显示错误): 安装和配置 要安装和配置vim-Grammalecte插件,请参考文档: Grammalecte插件定义了2个命令:GrammalecteCheck和:GrammalecteClear。 :GrammalecteCheck 使用:GrammalecteCheck命令检查当前缓冲区中的语法。 这将突出显示缓冲区中的错误。 它还将打开一个新的暂存窗口,其中包含语法错误列表,并提供每个错误的进一步说明。 它还会填充窗口
vim文件用于vim/gvim下,systemverilog/VMM/UVM文件自动高亮关键字.基于的文件版本及内容为: 1.systemverilog 1800-2012中附录内所有关键字; 2.VMM 1.2中class\method\type\macro; 3.UVM 1.2中class\method\type\macro\type\variable\constant\port\RootMethod
gvim配置verilog可以通过修改vimrc文件来实现。在vimrc文件中,可以添加一些配置和映射来提高verilog编码的效率。 首先,可以添加一些基本配置,如设置tab宽度、显示行号等。这些配置可以根据个人喜好进行修改。\[1\] 其次,可以添加一些快捷键映射,以方便快速编辑和执行vimrc配置。例如,可以将jk映射到ESC键,以便快速退出插入模式。\[1\] 还可以添加折叠功能,使得整体配置看起来更加清晰。可以使用za命令打开或关闭折叠。\[1\] 另外,可以使用一些插件来增强verilog编码的功能。例如,可以使用Ale插件进行异步代码检查,支持多种编程语言。该插件可以在后台进行代码检查,不会影响当前对vim的操作。\[3\] 此外,还可以根据个人需求添加其他的配置插件,以提高verilog编码的效率和舒适度。\[2\] 总之,通过修改vimrc文件并添加相应的配置插件,可以将gvim打造成一个方便的verilog编码工具,提高编码效率和舒适度。 #### 引用[.reference_title] - *1* *2* *3* [gvimverilog环境搭建——将文本编辑器客制化定义为你自己的IDE](https://blog.csdn.net/qq_41467882/article/details/128198815)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]