Vim之代码异步检测插件 ALE

前言

知名的 vim 代码检测插件主要是两个

  • syntastic
  • neomake
  • ALE

ALE 虽是后起之秀,但目前是功能最强大的一个

  • 实时检测。为了让代码可以在编辑时进行实时的检测,ale 的运行方式是将代码做为 stdin 导入检测工具(不支持的话使用临时文件),这样做的好处是我们可以更早的发现错误。
  • 并发运行。ale 默认使用所有可用的检测工具并发执行检测,譬如说我们有时需要同时对 javascript 运行 eslint 以及 jscs。
  • 标识栏、状态栏以及命令行消息支持。

安装

Vim 8 on Unix

mkdir -p ~/.vim/pack/git-plugins/start
git clone https://github.com/w0rp/ale.git ~/.vim/pack/git-plugins/start/ale

NeoVim on Unix

mkdir -p ~/.local/share/nvim/site/pack/git-plugins/start
git clone https://github.com/w0rp/ale.git ~/.local/share/nvim/site/pack/git-plugins/start/ale

Vim 8 on Windows

## Run these commands in the "Git for Windows" Bash terminal
mkdir -p ~/vimfiles/pack/git-plugins/start
git clone https://github.com/w0rp/ale.git ~/vimfiles/pack/git-plugins/start/ale

Vundle

把下面行加入到,vimrc

Plugin 'w0rp/ale'

Linter

ale 的 linter 都要自己安装
还好系统一般都是有 gcc, python, gofmt 之类的
需要额外安装的大约有

  • vint: vimscript
  • mdl: markdown
  • iverilog: verilog

vint

安装方法如下:

pip3 install vim-vint

mdl

安装方法如下:

gem install mdl

iverilog

安装 gperf, 下载源码: 链接

./configure && make && make install

下载 iverilog 源码:

git clone https://github.com/steveicarus/iverilog.git
cd iverilog
./autoconf.sh
./configure && make && make isntall

配置使用

"-----------------------------------------------------------------------------
" plugin - ale.vim
"-----------------------------------------------------------------------------
"keep the sign gutter open
let g:ale_sign_column_always = 1
let g:ale_sign_error = '>>'
let g:ale_sign_warning = '--'" show errors or warnings in my statusline
let g:airline#extensions#ale#enabled = 1" self-define statusline
"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()}" echo message
" %s is the error message itself
" %linter% is the linter name
" %severity is the severity type
" 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%]'" use quickfix list instead of the loclist
let g:ale_set_loclist = 0
let g:ale_set_quickfix = 1" only enable these linters
"let g:ale_linters = {
"\    'javascript': ['eslint']
"\}nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-J> <Plug>(ale_next_wrap)" run lint only on saving a file
" let g:ale_lint_on_text_changed = 'never'
" dont run lint on opening a file
" let g:ale_lint_on_enter = 0"------------------------END ale.vim--------------------------------------

效果

可看到因为第69,70,71, 73行的几个模块定义没有提供,所以左边线上有红色的>>
把光标定位到73行, 在下面命令行会给出具体的错误:

Unknown module type: pmu

总结

ALE可以让你一边编码一边实时检查代码的语法问题,同时还完全不影响vim的性能。这可以极大提升你代码输写的正确性。

Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性相关推荐

  1. ale插件 vim_Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性

    Vim之代码异步检测插件 ALE 前言 知名的 vim 代码检测插件主要是两个 syntastic neomake ALE ALE 虽是后起之秀,但目前是功能最强大的一个 实时检测.为了让代码可以在编 ...

  2. eclipse代码规范检测插件

    一款非常好用的阿里巴巴的代码规范检测插件,可以帮助我们养成一个好的编码规范. 1.点击eclipse中的Help----Install New Software 2.点击add---输入Name和Lo ...

  3. Gitlab集成阿里巴巴P3C-PMD代码质量检测插件

    1. 获取P3C-PMD (1) 下载源码 源码地址:https://github.com/alibaba/p3c p3c-pmd-2.1.1-jar.zip: https://pan.baidu.c ...

  4. vscode中怎样格式化js代码_[VSCode插件推荐] Bracket Pair Colorizer: 为代码中的括号添上一抹亮色...

    在代码编写过程中,各种括号 {[()]} 必不可少.然而,随着代码量的增加,你有没有因为括号的嵌套太多,而导致代码难以阅读? 我们来看看下面的代码,在第三行代码的最后部分,连续出现了5个右括号! 这还 ...

  5. IDEA06 代码规范检测插件之Alibaba Java Coding Guidelines

    1 官方资料 1.1 官方介绍 https://mp.weixin.qq.com/s/IbibsXlWHlM59kfXJqRvZA#rd 1.2 github地址 https://github.com ...

  6. java lint_Java代码规范与质量检测插件SonarLint

    1.  SonarLint SonarLint是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道 下载与安装 在需要检测的单个文件或者单个项目上右键 --> Analyze --> ...

  7. Java代码规范与质量检测插件SonarLint

    1.  SonarLint SonarLint是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道 下载与安装 在需要检测的单个文件或者单个项目上右键 --> Analyze --> ...

  8. IDEA代码检测插件,总有一款适合你

    下面提供三个工具和插件,帮助大家检测自己的代码质量 1 SonarLint SonarLint 是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道. 下载与安装 在需要检测的单个文件或者单个项目 ...

  9. 给IntelliJ IDEA换了个皮肤,加了几个插件,发现我爱上了敲代码:)

    先说结论 IntelliJ IDEA中使用Material Theme UI 的Theme + Rainbow Brackets 这俩插件,并且Editor->Color Scheme中选择Da ...

最新文章

  1. 由4G向5G进发的物联网:NB-IoT与LTE-M
  2. 华为工程师SRECon Asia见闻:聚焦可靠性、资源优化及性能提升
  3. Lua语言学习-垃圾回收
  4. LeetCode 28 实现 strStr()
  5. append有时加载不出来_关于艾拉浏览器看漫画,有时加载慢的解决方法,你知道了吗...
  6. php函数的初步使用
  7. 多机器人路径规划的代码_知荐 | 地平线机器人算法工程师总结六大路径规划算法...
  8. 干不过微信,又抢钉钉地盘!中移动砸下 8400 万重做飞信
  9. 中国人工智能学会通讯——基于视频的行为识别技术 1.5 基于深度学习的视频识别方法...
  10. 更换pip源,解决pip install安装包慢的问题
  11. 关于String a=new String(a)创建几个对象问题的正确答案
  12. Learning Deep Similarity Models with Focus Ranking for Fabric Image Retrieval 学习笔记
  13. 笔的图片 html,笔的素描画图片
  14. 开源协议MIT、BSD、Apache
  15. 360RePlugin 常见问题
  16. VC编译DLL时,如何不依赖VC运行库
  17. 使用在线模式更改工具修改表
  18. 出来混迟早是要还的:算法技术债
  19. 创新创业名词解释_“大众创业万众创新”相关名词解释总汇
  20. SQL 临时表的作用

热门文章

  1. nagios自定义监控API插件
  2. linux下压缩工具总结与使用(参考私房菜)
  3. Exchange Server 2010 灾难恢复
  4. windows7与虚拟机fedora 9.0文件共享
  5. 一个网络管理员应该掌握的mysql管理命令
  6. 使用DBCC SHRINKFILE EMPTYFILE 选项迁移数据
  7. Python标准模块--asyncio
  8. 从零开始写一个武侠冒险游戏-3-地图生成
  9. WPF:下拉列表的简单实现
  10. Mathematica开始学习,