ALE的基本介绍、使用与配置

news2024/9/22 17:35:51

本文将介绍ale插件的基本使用与配置,将从linter的介绍到具体插件的使用与bug的修复~
本文仅仅时抛砖引玉,更多的使用技巧与功能可以查看项目介绍

ALE的基本介绍、使用与配置

  • ale的介绍
  • ale的基本配置与使用
    • 查看你可用的linter
    • 安装iverilog——for window
    • ale的基本配置
  • 其他
    • 环境地址
    • Vim插件ale的BUG解决

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_fixers = {'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的配置如下

其他

环境地址

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

Vim插件ale的BUG解决

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redisson之lock()和tryLock()的区别

Redisson之lock()和tryLock()的区别和原理解析 在Redisson中 lock() 方法 与 tryLock() 方法是有区别的! 我们先来阐述两者的区别,再分析它们的源码。 lock() 与 tryLock() 的区别 (1)返回值: lock() 是没有返回值…

Vue中的diff算法深度解析

模板tamplate经过parse,optimize,generate等一些列操作之后,把AST转为render function code进而生成虚拟VNode,模板编译阶段基本已经完成了,那么这一章,我们来探讨一下Vue中的一个算法策略–dom diff 首先来介绍下什么…

Java8 遍历List 使用stream().parallel()并发安全

1. parallelStream是什么: java 8引入了并行流的概念来进行并行处理,而并行流(Parallel Stream)利用所有可用CPU内核的优势,并行处理任务。其原理(Parallel Stream)是可以把大任务分成多个小任务执行, 最后再把执行结果进行合并, ForkJoinPoo…

数仓DWS层之旁路缓存优化

优化原因: 外部数据源的查询常常是流式计算的性能瓶颈。以本程序为例,每次查询都要连接 Hbase,数据传输需要做序列化、反序列化,还有网络传输,严重影响时效性。可以通过旁路缓存对查询进行优化。 旁路缓存模式是一种非…

利用Python海龟绘图画一个世界杯的足球

利用Python海龟绘图画一个世界杯的足球 花有重开日 人无再少年 四年一次的世界杯快要结束,为了纪念此次世界杯,特意用Python画了一个足球。 1.设计思路以及实现效果 世界杯足球实现思路: 首先使用海龟画一个圆形作为足球的外边框。然后在足…

3天带你走向实战!阿里顶配版Spring全家桶面试进阶笔记有多强?

Spring框架自从诞生以来就一直备受开发者青睐,它涵盖了Spring、Springboot、SpringCloud等诸多解决方案,一般我们都会统称为Spring全家桶!出于Spring框架在Java开发者心中中的统治地位,所以不管是面试还是工作,Spring都…

夜神模拟器+fiddler抓包(抓取APPhttps请求,删除sll证书校验)

1.安装fiddler https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe (下载不了直接去官网找) 2.配置 开启https请求抓取,不抓https可忽略2.修改或查看端口(使用默认8888端口,要自定义端口可修改&#…

Arduino 定时器中断

Arduino 定时器中断 Circuits Arduino 查看原文 简介:Arduino 定时器中断 奥雷里(地球、月亮和太阳) 立式兰花播种机 胶合板书柜扬声器 计时器中断允许您以非常特定的时间间隔执行任务,而不管代码中发生了什么其他事情。我…

Unity ILRuntime Debugger使用及常见问题

目录前言1.安装2.使用3.常见问题前言 ILRuntime支持在VS中断点调试,下面说一下ILRuntime Debugger的使用及常见问题。 1.安装 需要下载对应版本的ILRuntime Debugger VS插件。我是在Unity中PackageManager安装的ILRuntime,可以在插件信息中查看版本。…

记SQL插入emoji成功,但是程序插入失败问题

在执行单测时,碰到了以下熟悉的问题 org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: java.sql.SQLException: Incorrect string value: \xF0\x9F\x92\x8B for column name at row 1 ### The error may involve com.*…

Java入门教程(16)——条件判断语句

文章目录1. if结构1.1 if 单分支结构1.2 if-else 双分支结构1.3 if-else if-else 多分支结构switch 语句switch 多分支结构1. if结构 1.1 if 单分支结构 语法结构: if(布尔表达式){ 语句块 }实例:掷色子游戏 这里给大家扩展一个Math函数 Math.Random()&#xff0c…

动态规划算法

1.简介 1.动态规划(Dynamic Programming)算法的核心思想是: 将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法; 2.动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解; 3.与分治法不同…

项目统一规范包管理器

一般来说每个团队都会统一规定项目内只使用一个包管理器,譬如:npm、yarn、pnpm等,我们可以在文档中或者项目根目录REDEM.md中进行描述来形成共识,但毕竟是文档,并不能真正的进行约束,如果有项目成员没有看文…

SpringBoot自动装配原理分析,看完你也能手写一个starter组件

什么是 SpringBoot 2012 年 10 月,一个叫 Mike Youngstrom 的人在 Spring Jira 中创建了一个功能请求,要求在 Spring Framework 中支持无容器 Web 应用程序体系结构,提出了在主容器引导 Spring 容器内配置 Web 容器服务。这件事情对 SpringBo…

Linux 进程间通信

目录 进程间通信的必要性 进程间通信的技术背景 进程间通信的本质理解: 管道IPC:匿名管道 示意图 匿名管道的本质原理: demo示例代码: pipe 系统调用 注意: 管道读写的4种情况: 管道的特点&…

H5UI库和二维码

一、H5UI库 1、使用方法: ​ (1)页面中引入css文件 ​ h5ui.css (h5ui.min.css) ​ (2)页面中引入js文件 ​ jquery.min.js ​ h5ui.min.js 2、组件的用法 ​ (1&#xff09…

为您的高速SPI添加强大和可靠的隔离交流

介绍 串行外设接口(SPI)是工业设备中常用于数字处理器核心和外围设备之间通信的一种协议。然而,为了安全使用,有必要对外围设备和核心进行电隔离。虽然隔离和SPI都是成熟的技术,但将两者接口并不像预期的那么简单。 …

SAP ABAP——数据类型(五)【LIKE系列关键字】

💬个人网站:【芒果个人日志】​​​​​​ 💬原文地址:SAP ABAP——数据类型(五)【LIKE系列关键字】 - 芒果个人日志 (wyz-math.cn) 💂作者简介: THUNDER王,一名热爱财税…

【git】简洁实用教程

虽然之前有git的笔记了,但是操作和命令太多,有点冗余,下面整理出最常见的一些场景和git需求。 零、Git速查表 好习惯:每次提交后和开发代码前,都应该pull下 常见命令: git clone拉取服务器代码&#xff0…

深度解读 | 如何构建以指标为核心的ABI平台?

在上期一文中,我们了解到BI不同发展阶段运行模式及遇到的问题。“报表阶段”是以报表粒度进行管理,数据和报表完全耦合在一起,在不同报表间产生数据和指标的冗余和重复,形成报表爆炸、技术债,导致数据不可信、分析不敏…