资讯专栏INFORMATION COLUMN

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

lifefriend_007 / 1744人阅读

摘要:之代码异步检测插件前言知名的代码检测插件主要是两个虽是后起之秀,但目前是功能最强大的一个实时检测。标识栏状态栏以及命令行消息支持。这可以极大提升你代码输写的正确性。

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   (ale_previous_wrap)
nmap   (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的性能。这可以极大提升你代码输写的正确性。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25035.html

相关文章

  • 如何优雅使用 Vim(二):插件介绍

    摘要:如何优雅的使用二插件介绍插件使用管理。文件管理器树形结构的文件管理器,目前使用。不同层次的括号颜色不一样,如下图另见然而这些彩虹括号插件,都免不了与冲突会使语法高亮失效,只好放弃了。 如何优雅的使用 Vim(二):插件介绍 插件使用 vim-plug 管理。很长一段时间,我都在用 Vundle,切换到 vim-plug 并非完全必要。 插件定义开始 call plug#begin(~...

    yeooo 评论0 收藏0
  • vim + syntastic + verilator or iverilog

    摘要:若文章有錯誤請留言指證需要轉載請通知筆者讓你可以在裡可以使用功能讓你在寫時檢查看看有沒有語法上的錯誤或者可能潛在的錯誤首先要先安裝有兩種選擇或是看你偏好哪一種我是經由安裝我是使用安裝你也可以透過其他安裝請參考官方文件透過安裝這裡我是透過安裝 若文章有錯誤請留言指證需要轉載請通知筆者 Introduction syntastic讓你可以在vim裡可以使用lint功能,讓你在寫code時檢...

    baukh789 评论0 收藏0
  • Vim中集成emacs下verilog-mode功能

    摘要:在上安装配置更新最新下载最新版可以见安装从网上找到的教程清一色是让在目录下新建一个目录然后放进去,再写个要新建还需要用窗口但我照做了没有用在下,依次输入回车,就可以看到下面界面里面并不包含目录,所以它没有起作用从的输出看,第一 在vim上安装配置verilog-mode 更新emasc最新verilog-mode 下载 最新版可以见 verilog-mode 安装 window 从网上...

    mating 评论0 收藏0
  • Vim 写 Python 最佳实践

    摘要:本文内容整理自我在知乎的回答用写的最佳实践是什么,下面的内容是对知乎旧有回答的一个补充,尤其有一些主要针对如果想要更多内容,可以查看知乎对于该问题的一些回答。主要是针对提供的内容进行再提取进行展示。 先来晒个图: showImg(https://segmentfault.com/img/bVIDeB?w=1434&h=1430); 对于一些 Python 的小项目,使用 vim 是一个...

    TANKING 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<