2019年5月19日 星期日

使用vim讓Verilog自動排版小技巧 (vim內建/Tabularize)

當在使用verilog/systemverilog時常會遇到排版紊亂
讀程式碼讀到眼珠子都要掉出來的情況

本篇統整幾個簡單的方法達到自動排版


1. vim內建的簡易排版功能


"="

   (1) 使用visual mode選取欲對齊之程式碼
   (2) 勇敢按下 = !!


使用 V 進入visual mode後選取程式碼


2. 使用plug-in/tabularize

   (1) 至github下載tabularize            https://github.com/godlygeek/tabular
   (2) 將下載下來之autoload/doc/plugin移至.vim的目錄下
   (3) 開始使用tabularize
   (4) 使用visual模式選取欲對齊之程式碼
   (5) 輸入 : 後, command視窗會顯示為  :'<'> 
   (6) 接著輸入tabularize/@  
             @為作為對齊之符號,可任意取代


輸入 : 後, command視窗會顯示為  :'<'> 



3. tabularize進階技巧

使用Verilog/Systemverilog時,我會在.vimrc裡加入以下設定已達快速對齊

可在選取訊號後  直接輸入  ,a(   即等同於輸入 :Tabularize /( 

 let mapleader=','

"if exists(":Tabularize")

nmap <Leader>a= :Tabularize /=<CR>

vmap <Leader>a= :Tabularize /=<CR>

nmap <Leader>a: :Tabularize /:\zs<CR>

vmap <Leader>a: :Tabularize /:\zs<CR>

nmap <Leader>a, :Tabularize /,<CR>

vmap <Leader>a, :Tabularize /,<CR>

nmap <Leader>a; :Tabularize /;<CR>

vmap <Leader>a; :Tabularize /;<CR>

nmap <Leader>a( :Tabularize /(<CR>

vmap <Leader>a( :Tabularize /(<CR>

nmap <Leader>a) :Tabularize /)<CR>

vmap <Leader>a) :Tabularize /)<CR>

nmap <Leader>a< :Tabularize /<=<CR>

vmap <Leader>a< :Tabularize /<=<CR>

"endif

4. 範例

選取後輸入 ,a= 

直接輸入 gv ,重新選取上次visual mode選取之範圍

選取後輸入 ,a; 

排版完成!!!



沒有留言:

張貼留言