日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/1/23 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ale插件 vim_Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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的性能。這可以極大提升你代碼輸寫的正確性。

總結

以上是生活随笔為你收集整理的ale插件 vim_Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。