GVIM的配置与使用

使用VIM,你可以完全解放鼠标,只用到大键盘就可以完成所有操作,非常的方便快捷,可以让我更加专注设计。

GVIM的配置,只需要配置_vimrc文件即可,想要什么功能都可以自己配置,比如我喜欢的光标不闪烁;括号自动补全,并跳出括号;列操作;在insert模式下,使用pp自动补全,hh左移,jj下移等。

以下内容分两部分,一是GVIM自带的命令汇总,二是自定义的规则,便于我快捷写verilog代码,可以快速添加文件注释,module模块,宏定义和接口信号声明,代码主体部分,组合逻辑,异步/同步时序逻辑设计等

注:<C-r>是Ctrl+r的组合键

// *********************************************************************
// File Name      : GVIM.txt
// Author         : YYB
// Create Date    : 2019-12-05 15:41
// Last Modified  : 2019-12-05 15:41
// Description    : GVIM自定义规则汇总
// Notes          : 
// *********************************************************************

GVIM命令:
    normal模式和insert模式:
    normal模式下的命令:
    i   --> 进入insert模式,按ESC回到normal模式
    x   --> 删除当前光标所在的一个字符
    :wq --> 存盘+退出(:w 存盘,:q 退出)(:w后可以跟文件名)
    dd  --> 删除当前行,并把删除的行存在剪贴板里
    p   --> 粘贴剪贴板
    hjkl --> 左下上右
    :help <command> --> 显示相关命令的帮助
    各种插入模式:
        a --> 在光标后插入
        O --> 在当前行前插入一个新行
        o --> 在当前行后插入一个新行
    简单的移动光标:
        0 --> 数字零,到行头
        ^ --> 到本行第一个不是blank字符的位置(所谓blank字符就是空格、tab、换行、回车等)
        $ --> 到本行行尾
        g_ -->到本行最后一个不是blank字符的位置
        /pattern --> 搜索pattern的字符串(如果搜索出多个匹配,可按n键到下一个)
        :noh --> 取消搜索字符串的高亮显示
    拷贝/粘贴:
        yy --> 拷贝当前行于剪贴板
        p --> 粘贴,当前位置之后
    Undo/Redo:
        u --> undo
        <C-r> --> redo
    打开/保存/退出/改变文件:
        :e <path/to/file> --> 打开一个文件
        :wq --> 存盘+退出(:w 存盘,:q 退出)(:w后可以跟文件名)
        :q! --> 退出不保存
        :saveas <path/to/file> --> 另存为<path/to/file> 
    重复自己:
        . --> (小数点)可以重复上一次的命令
        N<command> --> 重复某个命令N次
        比如:2dd --> 删除2行   3p --> 粘贴文本3次
    光标移动更有效率:
        gg --> 到第一行
        NG --> 到第N行
        G  --> 到最后一行
        按单词移动光标:
            w --> 到下一个单词的开头
            e --> 到下一个单词的结尾
        最强的光标移动:
            % --> 匹配括号移动,包括(),{},[]
            *和# --> 匹配光标所在单词,移动光标到下一个(上一个)匹配单词
    禁止光标不闪烁的方法:   set gcr=i:ver15-blinkon0 (insert模式下)
                            set gcr=n:block-blinkon0 (normal模式下)
    块操作:
        典型的操作:0 <C-q> <hjkl> I--[ESC] (块操作在句首处输入--)
    自动补齐:
        在insert模式下,输入一个词的开头,然后按<C-p>或<C-n>,自动补齐就出现了。
    分屏:
        输入:split  (创建横分屏)(可以使用:sp代替)
        输入:vsplit (创建垂直分屏)(可以使用:vs代替)
        可以使用hjkl切换分屏;
        关闭其他分屏,保留当前分屏:ctrl+w和o
        改变分屏尺寸:ctrl+w和+ (增大尺寸)
                      ctrl+w和- (减小尺寸)
自定义的规则:
    在括号中移动的快捷方式:现在括号可以自动补全了,按ESC可以跳出括号
关键字匹配代码块
    在insert模式下,
        pp --> 自动补全
        hh --> 左移
        jj --> 下移
        kk --> 上移
        ll --> 右移
        ii --> <ESC>
    在normal模式下,qq --> <C-q>(列操作),所以列操作就变为:
    进入normal模式,qq <hjkl> I <内容> <ESC>

以下是编写verilog的快捷方式:
    F2      --> 文件头注释
    Module  --> module模块
    Define  --> 宏定义和接口信号声明
    Code    --> 代码主体部分
    zuhe    --> 组合逻辑
    yibu    --> 异步时序逻辑
    tongbu  --> 同步时序逻辑
    input对齐规则:
        input48 --> input   [47:0] 
        input32 --> input   [31:0]
        input31 --> input   [30:0]
        ...
        input2  --> input    [1 :0]
        input   --> input
    output对齐规则类似于input   
    举例:output32    --> output wire [31:0]
         outputreg32 --> output  reg [31:0]                                                
    wire对齐规则类似于input 
    reg对齐规则类似于input 
 

_vimrc文件如下:

" ***********************************************************************
" * Author        : YYB
" * Create time   : 2019-12-4  22:37
" * Last modified : 2018-12-4  22:37
" * Filename      : _vimrc
" * Description   : 配置GVIM,为快速编写verilog代码
" * *********************************************************************

set nocompatible  
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
source $VIMRUNTIME/colors/desert.vim
behave mswin

"设置光标不闪烁
set gcr=i:ver15-blinkon0
set gcr=n:block-blinkon0

"let g:indent_guides_enable_on_vim_startup = 1

"--------------------------------------------------------------------------------
"------------------------------对齐规则------------------------------------------
"--------------------------------------------------------------------------------
set nu!
set sw=4
set ts=4
set et
set nobackup

"注释换行不自动添加注释
au FileType c,cpp,verilog setlocal comments-=:// comments+=f://
set paste

"自动补全括号,按TAB跳出括号
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap < <><ESC>i
inoremap { {<CR>}<ESC>O
"设置跳出自动补全的括号
func SkipPair()  
    if getline('.')[col('.') - 1] == ')' || getline('.')[col('.') - 1] == ']' || getline('.')[col('.') - 1] == '"' || getline('.')[col('.') - 1] == "'" || getline('.')[col('.') - 1] == '}' || getline('.')[col('.') - 1] == ">"
        return "\<ESC>la"  
    else  
        return "\t"  
    endif  
endfunc  
" 将TAB键绑定为跳出括号  
inoremap <TAB> <c-r>=SkipPair()<CR>

:imap   pp      <C-p>
:imap   hh      <Left>
:imap   jj      <Down>
:imap   kk      <Up>
:imap   ll      <Right>
:imap   ii      <Esc>
:map    qq      <C-q>

"--------------------------------------module----------------------------------
"------------------------------------------------------------------------------
"--------------------------------------module----------------------------------
:ab Define	//======================================================================<Enter>//************** Define Parameter and Internal Signals *****************<Enter>//======================================================================<Enter><ESC>i
:ab Code    //======================================================================<Enter>//**************************** Main Code *******************************<Enter>//======================================================================<Enter><ESC>i
:ab Module  module	(<Enter><Enter>);<Enter><Enter><Enter><Enter><Enter><Enter>endmodule<Esc>
":ab Zh      ii0d$ialways  @(*) begin <ESC>dwa<Enter>      end<Esc>0dwk$a
"--------------------------------------时序逻辑----------------------------------------"
"组合逻辑,使用快捷方式zuhe
:ab zuhe always @(*)begin<Enter>if ()begin<Enter><Enter>end<Enter>else begin<Enter><Enter>end<Enter>end
"异步时序逻辑,使用快捷方式yibu
:ab yibu always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter><Enter>end<Enter>else if()begin<Enter><Enter>end<Enter>else begin<Enter><Enter>end<Enter>end
"同步时序逻辑,使用会计方式tongbu
:ab tongbu always @(posedge clk)begin<Enter>if(!rst_n)begin<Enter><Enter>end<Enter>else if()begin<Enter><Enter>end<Enter>else begin<Enter><Enter>end<Enter>end

"---------------------------------------计数器-----------------------------------------"
:ab Jsq  iid0d$i//cnt<Enter>always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>cnt <= 0;<Enter>end<Enter>else if(add_cnt)begin<Enter>if(end_cnt)<Enter>cnt <= 0;<Enter>else<Enter>cnt <= cnt + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt<Tab><Tab>=<Tab><Tab>;       <Enter>assign  end_cnt<Tab><Tab>=<Tab><Tab>add_cnt && cnt == ;   

:ab Jsq2 iid0d$i//cnt0<Enter>always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>cnt0 <= 0;<Enter>end<Enter>else if(add_cnt0)begin<Enter>if(end_cnt0)<Enter>cnt0 <= 0;<Enter>else<Enter>cnt0 <= cnt0 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt0<Tab><Tab>=<Tab><Tab>;<Enter>assign  end_cnt0<Tab><Tab>=<Tab><Tab>add_cnt0 && cnt0 == ;<Enter><Enter>//cnt1<Enter>always @(posedge clk or negedge rst_n)begin <Enter>if(!rst_n)begin<Enter>cnt1 <= 0;<Enter>end<Enter>else if(add_cnt1)begin<Enter>if(end_cnt1)<Enter>cnt1 <= 0;<Enter>else<Enter>cnt1 <= cnt1 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt1<Tab><Tab>=<Tab><Tab>end_cnt0;<Enter>assign  end_cnt1<Tab><Tab>=<Tab><Tab>add_cnt1 && cnt1 == ;

:ab Jsq3 iid0d$i//cnt0<Enter>always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>cnt0 <= 0;<Enter>end<Enter>else if(add_cnt0)begin<Enter>if(end_cnt0)<Enter>cnt0 <= 0;<Enter>else<Enter>cnt0 <= cnt0 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt0<Tab><Tab>=<Tab><Tab>;<Enter>assign  end_cnt0<Tab><Tab>=<Tab><Tab>add_cnt0 && cnt0 == ;<Enter><Enter>//cnt1<Enter>always @(posedge clk or negedge rst_n)begin <Enter>if(!rst_n)begin<Enter>cnt1 <= 0;<Enter>end<Enter>else if(add_cnt1)begin<Enter>if(end_cnt1)<Enter>cnt1 <= 0;<Enter>else<Enter>cnt1 <= cnt1 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt1<Tab><Tab>=<Tab><Tab>end_cnt0;<Enter>assign  end_cnt1<Tab><Tab>=<Tab><Tab>add_cnt1 && cnt1 == ;<Enter><Enter>//cnt2<Enter>always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>cnt2 <= 0;<Enter>end<Enter>else if(add_cnt2)begin<Enter>if(end_cnt2)<Enter>cnt2 <= 0;<Enter>else<Enter>cnt2 <= cnt2 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt2<Tab><Tab>=<Tab><Tab>end_cnt1;<Enter>assign  end_cnt2<Tab><Tab>=<Tab><Tab>add_cnt2 && cnt2 == ; 

:ab Cnt0  iid0d$ireg     [  : 0]                 cnt0                            ;<Enter>wire                            add_cnt0                        ;<Enter>wire                            end_cnt0                        ;<Enter>//cnt0<Enter>always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>cnt0 <= 0;<Enter>end<Enter>else if(add_cnt0)begin<Enter>if(end_cnt0)<Enter>cnt0 <= 0;<Enter>else<Enter>cnt0 <= cnt0 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt0<Tab><Tab>=<Tab><Tab>;       <Enter>assign  end_cnt0<Tab><Tab>=<Tab><Tab>add_cnt0 && cnt0 == ;
:ab Cnt1  iid0d$ireg     [  : 0]                 cnt1                            ;<Enter>wire                            add_cnt1                        ;<Enter>wire                            end_cnt1                        ;<Enter>//cnt1<Enter>always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>cnt1 <= 0;<Enter>end<Enter>else if(add_cnt1)begin<Enter>if(end_cnt1)<Enter>cnt1 <= 0;<Enter>else<Enter>cnt1 <= cnt1 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt1<Tab><Tab>=<Tab><Tab>;       <Enter>assign  end_cnt1<Tab><Tab>=<Tab><Tab>add_cnt1 && cnt1 == ;
:ab Cnt2  iid0d$ireg     [  : 0]                 cnt2                            ;<Enter>wire                            add_cnt2                        ;<Enter>wire                            end_cnt2                        ;<Enter>//cnt2<Enter>always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>cnt2 <= 0;<Enter>end<Enter>else if(add_cnt2)begin<Enter>if(end_cnt2)<Enter>cnt2 <= 0;<Enter>else<Enter>cnt2 <= cnt2 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt2<Tab><Tab>=<Tab><Tab>;       <Enter>assign  end_cnt2<Tab><Tab>=<Tab><Tab>add_cnt2 && cnt2 == ;
:ab Cnt3  iid0d$ireg     [  : 0]                 cnt3                            ;<Enter>wire                            add_cnt3                        ;<Enter>wire                            end_cnt3                        ;<Enter>//cnt3<Enter>always @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>cnt3 <= 0;<Enter>end<Enter>else if(add_cnt3)begin<Enter>if(end_cnt3)<Enter>cnt3 <= 0;<Enter>else<Enter>cnt3 <= cnt3 + 1;<Enter>end<Enter>end<Enter><Enter>assign  add_cnt3<Tab><Tab>=<Tab><Tab>;       <Enter>assign  end_cnt3<Tab><Tab>=<Tab><Tab>add_cnt3 && cnt3 == ;
"-----------------------------------------------------------------------状态机-----------------------------------------------------------------"
:ab Ztj4    always@(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>state_c <= IDLE;<Enter>end<Enter>else begin<Enter>state_c <= state_n;<Enter>end<Enter>end<Enter><Enter><Enter>always@(*)begin<Enter>case(state_c)<Enter>IDLE:begin<Enter>if(idl2s1_start)begin<Enter>state_n = S1;<Enter>end<Enter>else begin<Enter>state_n = state_c;<Enter>end<Enter>end<Enter>S1:begin<Enter>if(s12s2_start)begin<Enter>state_n = S2;<Enter>end<Enter>else begin<Enter>state_n = state_c;<Enter>end<Enter>end<Enter>S2:begin<Enter>if(s22s3_start)begin<Enter>state_n = S3;<Enter>end<Enter>else begin<Enter>state_n = state_c;<Enter>end<Enter>end<Enter>default:begin<Enter>state_n = IDLE;<Enter>end<Enter>endcase<Enter>end<Enter><Enter>assign idl2s1_start<Tab><Tab>=<Tab><Tab>state_c==IDLE && ;<Enter>assign s12s2_start<Tab><Tab>=<Tab><Tab>state_c==S1    && ;<Enter>assign s22s3_start<Tab><Tab>=<Tab><Tab>state_c==S2    && ;<Enter><Enter><Enter>always  @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>out1 <=1'b0;      <Enter>end<Enter>else if(state_c==S1)begin<Enter>out1 <= 1'b1;<Enter>end<Enter>else begin<Enter>out1 <= 1'b0;<Enter>end<Enter>end
:ab Ztj    //state_c<enter>always@(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>state_c <= IDLE;<Enter>end<Enter>else begin<Enter>state_c <= state_n;<Enter>end<Enter>end<Enter><Enter>//state_n<enter>always@(*)begin<Enter>case(state_c)<Enter>IDLE:begin<Enter>if()begin<Enter>state_n = S1;<Enter>end<Enter>else begin<Enter>state_n = state_c;<Enter>end<Enter>end<Enter>S1:begin<Enter>if()begin<Enter>state_n = S2;<Enter>end<Enter>else begin<Enter>state_n = state_c;<Enter>end<Enter>end<Enter>S2:begin<Enter>if()begin<Enter>state_n = S3;<Enter>end<Enter>else begin<Enter>state_n = state_c;<Enter>end<Enter>end<Enter>default:begin<Enter>state_n = IDLE;<Enter>end<Enter>endcase<Enter>end<Enter><Enter>always  @(posedge clk or negedge rst_n)begin<Enter>if(!rst_n)begin<Enter>out1 <=1'b0;      <Enter>end<Enter>else if(state_c==S1)begin<Enter>out1 <= 1'b1;<Enter>end<Enter>else begin<Enter>out1 <= 1'b0;<Enter>end<Enter>end

"---------------------------------input对齐规则-----------------------------------------"
:ab input48 	    input         [47: 0]                                   <ESC>032ldwi
:ab input32 	    input         [31: 0]                                   <ESC>032ldwi
:ab input31         input         [30: 0]                                   <ESC>032ldwi
:ab input30 	    input         [29: 0]                                   <ESC>032ldwi
:ab input29 	    input         [28: 0]                                   <ESC>032ldwi
:ab input28 	    input         [27: 0]                                   <ESC>032ldwi
:ab input27 	    input         [26: 0]                                   <ESC>032ldwi
:ab input26 	    input         [25: 0]                                   <ESC>032ldwi
:ab input25 	    input         [24: 0]                                   <ESC>032ldwi
:ab input24 	    input         [23: 0]                                   <ESC>032ldwi
:ab input23 	    input         [22: 0]                                   <ESC>032ldwi
:ab input22 	    input         [21: 0]                                   <ESC>032ldwi
:ab input21 	    input         [20: 0]                                   <ESC>032ldwi
:ab input20 	    input         [19: 0]                                   <ESC>032ldwi
:ab input19 	    input         [18: 0]                                   <ESC>032ldwi
:ab input18 	    input         [17: 0]                                   <ESC>032ldwi
:ab input17 	    input         [16: 0]                                   <ESC>032ldwi
:ab input16         input         [15: 0]                                   <ESC>032ldwi
:ab input15 	    input         [14: 0]                                   <ESC>032ldwi
:ab input14 	    input         [13: 0]                                   <ESC>032ldwi
:ab input13 	    input         [12: 0]                                   <ESC>032ldwi
:ab input12 	    input         [11: 0]                                   <ESC>032ldwi
:ab input11 	    input         [10: 0]                                   <ESC>032ldwi
:ab input10 	    input         [ 9: 0]                                   <ESC>032ldwi
:ab input9  	    input         [ 8: 0]                                   <ESC>032ldwi
:ab input8  	    input         [ 7: 0]                                   <ESC>032ldwi
:ab input7  	    input         [ 6: 0]                                   <ESC>032ldwi
:ab input6  	    input         [ 5: 0]                                   <ESC>032ldwi
:ab input5  	    input         [ 4: 0]                                   <ESC>032ldwi
:ab input4  	    input         [ 3: 0]                                   <ESC>032ldwi
:ab input3  	    input         [ 2: 0]                                   <ESC>032ldwi
:ab input2  	    input         [ 1: 0]                                   <ESC>032ldwi
:ab input     	    input                                                   <ESC>032ldwi

"---------------------------------output对齐规则-----------------------------------2---"
:ab outputreg48 	output  reg   [47: 0]                                   <ESC>032ldwi
:ab outputreg32 	output  reg   [31: 0]                                   <ESC>032ldwi
:ab outputreg31     output  reg   [30: 0]                                   <ESC>032ldwi
:ab outputreg30 	output  reg   [29: 0]                                   <ESC>032ldwi
:ab outputreg29 	output  reg   [28: 0]                                   <ESC>032ldwi
:ab outputreg28 	output  reg   [27: 0]                                   <ESC>032ldwi
:ab outputreg27 	output  reg   [26: 0]                                   <ESC>032ldwi
:ab outputreg26 	output  reg   [25: 0]                                   <ESC>032ldwi
:ab outputreg25 	output  reg   [24: 0]                                   <ESC>032ldwi
:ab outputreg24 	output  reg   [23: 0]                                   <ESC>032ldwi
:ab outputreg23 	output  reg   [22: 0]                                   <ESC>032ldwi
:ab outputreg22 	output  reg   [21: 0]                                   <ESC>032ldwi
:ab outputreg21 	output  reg   [20: 0]                                   <ESC>032ldwi
:ab outputreg20 	output  reg   [19: 0]                                   <ESC>032ldwi
:ab outputreg19 	output  reg   [18: 0]                                   <ESC>032ldwi
:ab outputreg18 	output  reg   [17: 0]                                   <ESC>032ldwi
:ab outputreg17 	output  reg   [16: 0]                                   <ESC>032ldwi
:ab outputreg16     output  reg   [15: 0]                                   <ESC>032ldwi
:ab outputreg15 	output  reg   [14: 0]                                   <ESC>032ldwi
:ab outputreg14 	output  reg   [13: 0]                                   <ESC>032ldwi
:ab outputreg13 	output  reg   [12: 0]                                   <ESC>032ldwi
:ab outputreg12 	output  reg   [11: 0]                                   <ESC>032ldwi
:ab outputreg11 	output  reg   [10: 0]                                   <ESC>032ldwi
:ab outputreg10 	output  reg   [ 9: 0]                                   <ESC>032ldwi
:ab outputreg9  	output  reg   [ 8: 0]                                   <ESC>032ldwi
:ab outputreg8  	output  reg   [ 7: 0]                                   <ESC>032ldwi
:ab outputreg7  	output  reg   [ 6: 0]                                   <ESC>032ldwi
:ab outputreg6  	output  reg   [ 5: 0]                                   <ESC>032ldwi
:ab outputreg5  	output  reg   [ 4: 0]                                   <ESC>032ldwi
:ab outputreg4  	output  reg   [ 3: 0]                                   <ESC>032ldwi
:ab outputreg3  	output  reg   [ 2: 0]                                   <ESC>032ldwi
:ab outputreg2  	output  reg   [ 1: 0]                                   <ESC>032ldwi
:ab outputreg   	output  reg                                             <ESC>032ldwi

:ab output48    	output  wire  [47: 0]                                   <ESC>032ldwi
:ab output32    	output  wire  [31: 0]                                   <ESC>032ldwi
:ab output31        output  wire  [30: 0]                                   <ESC>032ldwi
:ab output30    	output  wire  [29: 0]                                   <ESC>032ldwi
:ab output29    	output  wire  [28: 0]                                   <ESC>032ldwi
:ab output28    	output  wire  [27: 0]                                   <ESC>032ldwi
:ab output27    	output  wire  [26: 0]                                   <ESC>032ldwi
:ab output26    	output  wire  [25: 0]                                   <ESC>032ldwi
:ab output25    	output  wire  [24: 0]                                   <ESC>032ldwi
:ab output24    	output  wire  [23: 0]                                   <ESC>032ldwi
:ab output23    	output  wire  [22: 0]                                   <ESC>032ldwi
:ab output22    	output  wire  [21: 0]                                   <ESC>032ldwi
:ab output21    	output  wire  [20: 0]                                   <ESC>032ldwi
:ab output20    	output  wire  [19: 0]                                   <ESC>032ldwi
:ab output19    	output  wire  [18: 0]                                   <ESC>032ldwi
:ab output18    	output  wire  [17: 0]                                   <ESC>032ldwi
:ab output17    	output  wire  [16: 0]                                   <ESC>032ldwi
:ab output16        output  wire  [15: 0]                                   <ESC>032ldwi
:ab output15        output  wire  [14: 0]                                   <ESC>032ldwi
:ab output14        output  wire  [13: 0]                                   <ESC>032ldwi
:ab output13        output  wire  [12: 0]                                   <ESC>032ldwi
:ab output12        output  wire  [11: 0]                                   <ESC>032ldwi
:ab output11        output  wire  [10: 0]                                   <ESC>032ldwi
:ab output10    	output  wire  [ 9: 0]                                   <ESC>032ldwi
:ab output9     	output  wire  [ 8: 0]                                   <ESC>032ldwi
:ab output8     	output  wire  [ 7: 0]                                   <ESC>032ldwi
:ab output7     	output  wire  [ 6: 0]                                   <ESC>032ldwi
:ab output6     	output  wire  [ 5: 0]                                   <ESC>032ldwi
:ab output5     	output  wire  [ 4: 0]                                   <ESC>032ldwi
:ab output4     	output  wire  [ 3: 0]                                   <ESC>032ldwi
:ab output3     	output  wire  [ 2: 0]                                   <ESC>032ldwi
:ab output2     	output  wire  [ 1: 0]                                   <ESC>032ldwi
:ab output      	output  wire                                            <ESC>032ldwi

"---------------------------------wire对齐规则-------------------------------------2---"
:ab wire48 			wire    [47: 0]                                   		<ESC>032ldwi
:ab wire32 			wire    [31: 0]                                   		<ESC>032ldwi
:ab wire31  		wire    [30: 0]                                   		<ESC>032ldwi
:ab wire30 			wire    [29: 0]                                   		<ESC>032ldwi
:ab wire29 			wire    [28: 0]                                   		<ESC>032ldwi
:ab wire28 			wire    [27: 0]                                   		<ESC>032ldwi
:ab wire27 			wire    [26: 0]                                   		<ESC>032ldwi
:ab wire26 			wire    [25: 0]                                   		<ESC>032ldwi
:ab wire25 			wire    [24: 0]                                   		<ESC>032ldwi
:ab wire24 			wire    [23: 0]                                   		<ESC>032ldwi
:ab wire23 			wire    [22: 0]                                   		<ESC>032ldwi
:ab wire22 			wire    [21: 0]                                   		<ESC>032ldwi
:ab wire21 			wire    [20: 0]                                   		<ESC>032ldwi
:ab wire20 			wire    [19: 0]                                   		<ESC>032ldwi
:ab wire19 			wire    [18: 0]                                   		<ESC>032ldwi
:ab wire18 			wire    [17: 0]                                   		<ESC>032ldwi
:ab wire17 			wire    [16: 0]                                   		<ESC>032ldwi
:ab wire16  		wire    [15: 0]                                   		<ESC>032ldwi
:ab wire15			wire    [14: 0]                                   		<ESC>032ldwi
:ab wire14			wire    [13: 0]                                   		<ESC>032ldwi
:ab wire13			wire    [12: 0]                                   		<ESC>032ldwi
:ab wire12			wire    [11: 0]                                   		<ESC>032ldwi
:ab wire11			wire    [10: 0]                                   		<ESC>032ldwi
:ab wire10 			wire    [ 9: 0]                                   		<ESC>032ldwi
:ab wire9  			wire    [ 8: 0]                                   		<ESC>032ldwi
:ab wire8  			wire    [ 7: 0]                                   		<ESC>032ldwi
:ab wire7  			wire    [ 6: 0]                                   		<ESC>032ldwi
:ab wire6  			wire    [ 5: 0]                                   		<ESC>032ldwi
:ab wire5  			wire    [ 4: 0]                                   		<ESC>032ldwi
:ab wire4  			wire    [ 3: 0]                                   		<ESC>032ldwi
:ab wire3  			wire    [ 2: 0]                                   		<ESC>032ldwi
:ab wire2  			wire    [ 1: 0]                                   		<ESC>032ldwi
:ab wire1  			wire                                              		<ESC>032ldwi

"----------------------------------reg对齐规则-------------------------------------2---"
:ab reg48 			reg     [47: 0]                                  	    <ESC>032ldwi
:ab reg32 			reg     [31: 0]                                  	    <ESC>032ldwi
:ab reg31 			reg     [30: 0]                                  	    <ESC>032ldwi
:ab reg30  			reg     [29: 0]                                  	    <ESC>032ldwi
:ab reg29  			reg     [28: 0]                                  	    <ESC>032ldwi
:ab reg28  			reg     [27: 0]                                  	    <ESC>032ldwi
:ab reg27  			reg     [26: 0]                                  	    <ESC>032ldwi
:ab reg26  			reg     [25: 0]                                  	    <ESC>032ldwi
:ab reg25  			reg     [24: 0]                                  	    <ESC>032ldwi
:ab reg24  			reg     [23: 0]                                  	    <ESC>032ldwi
:ab reg23  			reg     [22: 0]                                  	    <ESC>032ldwi
:ab reg22  			reg     [21: 0]                                  	    <ESC>032ldwi
:ab reg21  			reg     [20: 0]                                  	    <ESC>032ldwi
:ab reg20  			reg     [19: 0]                                  	    <ESC>032ldwi
:ab reg19  			reg     [18: 0]                                  	    <ESC>032ldwi
:ab reg18  			reg     [17: 0]                                  	    <ESC>032ldwi
:ab reg17  			reg     [16: 0]                                  	    <ESC>032ldwi
:ab reg16 			reg     [15: 0]                                  	    <ESC>032ldwi
:ab reg15  			reg     [14: 0]                                  	    <ESC>032ldwi
:ab reg14  			reg     [13: 0]                                  	    <ESC>032ldwi
:ab reg13  			reg     [12: 0]                                  	    <ESC>032ldwi
:ab reg12  			reg     [11: 0]                                  	    <ESC>032ldwi
:ab reg11  			reg     [10: 0]                                  	    <ESC>032ldwi
:ab reg10  			reg     [ 9: 0]                                  	    <ESC>032ldwi
:ab reg9  			reg     [ 8: 0]                                  	    <ESC>032ldwi
:ab reg8  			reg     [ 7: 0]                                  	    <ESC>032ldwi
:ab reg7  			reg     [ 6: 0]                                  	    <ESC>032ldwi
:ab reg6  			reg     [ 5: 0]                                  	    <ESC>032ldwi
:ab reg5  			reg     [ 4: 0]                                  	    <ESC>032ldwi
:ab reg4  			reg     [ 3: 0]                                  	    <ESC>032ldwi
:ab reg3  			reg     [ 2: 0]                                  	    <ESC>032ldwi
:ab reg2  			reg     [ 1: 0]                                  	    <ESC>032ldwi
:ab reg1  			reg                                              	    <ESC>032ldwi

"---------------------------------文件头注释规则---------------------------------------"
:imap <F2> <ESC>ms:call AddAuthor()<cr>
:map <F2> ms:call AddAuthor()<cr>
function AddAuthor()
    let n=1
    while n < 6
        let line = getline(n)
        if line=~'[#]*\s*\*\s*\S*Last\s*modified\s*:\s*\S*.*$'
        call UpdateTitle()
        return
    endif
    let n = n + 1
    endwhile
    if &filetype == 'sh'
        call AddTitleForShell()
    elseif &filetype == 'python'
        call AddTitleForPython()
    else
        call AddTitleForC()
    endif

endfunction


function UpdateTitle()
    normal m'
    execute '/* Last Modified\s*:/s@:.*$@\=strftime(": %Y-%m-%d %H:%M")@'
    normal mk
    execute '/* Filename\s*:/s@:.*$@\=": ".expand("%:t")@'
    execute "noh"
    normal 'k
    echohl WarningMsg | echo "Successful in updating the copy right." |echohl None
endfunction

function AddTitleForC()
    call append(0,"// *********************************************************************")
    call append(1,"// File Name      : ".expand("%:t"))
    call append(2,"// Author         : YYB")
    call append(3,"// Create Date    : ".strftime("%Y-%m-%d %H:%M"))
    call append(4,"// Last Modified  : ".strftime("%Y-%m-%d %H:%M"))
    call append(5,"// Description    : ")
    call append(6,"// Notes          : ")
    call append(7,"// *********************************************************************")
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endfunction

"" add comment for Python
function AddTitleForPython()
    call append(0,"#!/usr/bin/python")
    call append(1,"# -*- coding: UTF-8 -*-")
    call append(2,"")
    call append(3,"# ***********************************************************************")
    call append(4,"# File Name      : ".expand("%:t"))
    call append(5,"# Author         : YYB")
    call append(6,"# Create Date    : ".strftime("%Y-%m-%d %H:%M"))
    call append(7,"# Last Modified  : ".strftime("%Y-%m-%d %H:%M"))
    call append(8,"# Description    : ")
    call append(9,"# Notes          : ")
    call append(10,"# ***********************************************************************")
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endfunction

"" add conment for shell
function AddTitleForShell()
    call append(0,"#!/bin/bash")
    call append(1,"# ***********************************************************************")
    call append(2,"# File Name      : ".expand("%:t"))
    call append(3,"# Author         : YYB")
    call append(4,"# Create Date    : ".strftime("%Y-%m-%d %H:%M"))
    call append(5,"# Last Modified  : ".strftime("%Y-%m-%d %H:%M"))
    call append(6,"# Description    : ")
    call append(7,"# Notes          : ")
    call append(8,"# ***********************************************************************")
endfunction

"---------------------------------------各插件配置-------------------------------------------"
":ab    // <Esc>0i// ii
:imap	<F1>	<ESC>:NERDTree<cr><cr>
:map	<F1>	:NERDTree<cr><cr>

let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplMapWindowNavVim = 1
:map <F9>   :TMiniBufExplorer<cr>
:imap <F9>   <ESC>:TMiniBufExplorer<cr>
:ab   cmb   <ESC>:CMiniBufExplorer

:map  <S-j>     <C-j>
:map  <S-k>     <C-k>
:map  <S-h>     <C-h>
:map  <S-l>     <C-l>

"语言设置f
set encoding=utf-8  
set termencoding=utf-8   
set fileencoding=chinese 
set fileencodings=ucs-bom,utf-8,chinese   
set langmenu=zh_CN.utf-8  
source $VIMRUNTIME/delmenu.vim  
source $VIMRUNTIME/menu.vim
language messages zh_cn.utf-8 


set tags=tags;
set autochdir

"NERDTree配置
map <F1> :NERDTreeToggle<CR>
map <C-F1> :NERDTreeFind<CR>
let NERDTreeChDirMode=2  "选中root即设置为当前目录
let NERDTreeQuitOnOpen=1 "打开文件时关闭树
let NERDTreeShowBookmarks=1 "显示书签
let NERDTreeMinimalUI=1 "不显示帮助面板
let NERDTreeDirArrows=1 "目录箭头 1 显示箭头  0传统+-|号


:set guioptions-=m  "remove menu bar  
:set guioptions-=T  "remove toolbar  
:set guioptions-=r  "remove right-hand scroll bar  
:set guioptions-=L  "remove left-hand scroll bar</span>  

:set showmatch
:set matchtime=2
set guifont=新宋体:h16:cGB2312

"自动补全
":inoremap ( ()<ESC>i
":inoremap ) <c-r>=ClosePair(')')<CR>
"":inoremap { {<CR>}<ESC>O
"":inoremap } <c-r>=ClosePair('}')<CR>
":inoremap [ []<ESC>i
":inoremap ] <c-r>=ClosePair(']')<CR>
":inoremap " ""<ESC>i
"function! ClosePair(char)
"    if getline('.')[col('.') - 1] == a:char
"        return "\<Right>"
"    else
"        return a:char
"    endif
"endfunction
filetype plugin indent on 

:ab Initial initial begin<Enter>#1;<Enter>end

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      let cmd = '""' . $VIMRUNTIME . '\diff"'
      let eq = '"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

最后,欢迎关注我的公众号:请叫我彬哥,记录点滴人生!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章