vi 和verilog

0)https://my.oschina.net/u/2520885/blog/800743javascript

gvim中進行verilog語言信號追蹤、顯示拓撲插件 頂 原 薦java

1)https://segmentfault.com/a/1190000016405629python

Vim之代碼異步檢測插件 ALE -- 實時檢查verilog等代碼的正確性

知名的 vim 代碼檢測插件主要是兩個nginx

  • syntastic
  • neomake
  • ALE

ALE 雖是後起之秀,但目前是功能最強大的一個git

  • 實時檢測。爲了讓代碼能夠在編輯時進行實時的檢測,ale 的運行方式是將代碼作爲 stdin 導入檢測工具(不支持的話使用臨時文件),這樣作的好處是咱們能夠更早的發現錯誤。
  • 併發運行。ale 默認使用全部可用的檢測工具併發執行檢測,譬如說咱們有時須要同時對 javascript 運行 eslint 以及 jscs。
  • 標識欄、狀態欄以及命令行消息支持。

2)https://segmentfault.com/a/1190000015642389#articleHeader4github

在Vim中集成emacs下的verilog-mode功能

3)https://www.ece.ucsb.edu/its/bluespec/training/BSV/slides/Lec04_Module_Hierarchy.pdfshell

 

========================vim

0

Vim之代碼異步檢測插件 ALE

前言

知名的 vim 代碼檢測插件主要是兩個segmentfault

  • syntastic
  • neomake
  • ALE

ALE 雖是後起之秀,但目前是功能最強大的一個bash

  • 實時檢測。爲了讓代碼能夠在編輯時進行實時的檢測,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

a1a4db88-b29a-4b08-998d-29fd9f706d54

總結

ALE能夠讓你一邊編碼一邊實時檢查代碼的語法問題,同時還徹底不影響vim的性能。這能夠極大提高你代碼輸寫的正確性。

相關文章
相關標籤/搜索