GVIM的配置与使用

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

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

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

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

以下是编写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 ' ''i
inoremap " ""i
inoremap ( ()i
inoremap [ []i
inoremap < <>i
inoremap { {}O
"设置跳出自动补全的括号
func SkipPair()  
    if getline('.')[col('.') - 1] == ')' || getline('.')[col('.') - 1] == ']' || getline('.')[col('.') - 1] == '"' || getline('.')[col('.') - 1] == "'" || getline('.')[col('.') - 1] == '}' || getline('.')[col('.') - 1] == ">"
        return "\la"  
    else  
        return "\t"  
    endif  
endfunc  
" 将TAB键绑定为跳出括号  
inoremap  =SkipPair()

:imap   pp      
:imap   hh      
:imap   jj      
:imap   kk      
:imap   ll      
:imap   ii      
:map    qq      

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

"---------------------------------------计数器-----------------------------------------"
:ab Jsq  iid0d$i//cntalways @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt <= 0;endelse if(add_cnt)beginif(end_cnt)cnt <= 0;elsecnt <= cnt + 1;endendassign  add_cnt=;       assign  end_cnt=add_cnt && cnt == ;   

:ab Jsq2 iid0d$i//cnt0always @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt0 <= 0;endelse if(add_cnt0)beginif(end_cnt0)cnt0 <= 0;elsecnt0 <= cnt0 + 1;endendassign  add_cnt0=;assign  end_cnt0=add_cnt0 && cnt0 == ;//cnt1always @(posedge clk or negedge rst_n)begin if(!rst_n)begincnt1 <= 0;endelse if(add_cnt1)beginif(end_cnt1)cnt1 <= 0;elsecnt1 <= cnt1 + 1;endendassign  add_cnt1=end_cnt0;assign  end_cnt1=add_cnt1 && cnt1 == ;

:ab Jsq3 iid0d$i//cnt0always @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt0 <= 0;endelse if(add_cnt0)beginif(end_cnt0)cnt0 <= 0;elsecnt0 <= cnt0 + 1;endendassign  add_cnt0=;assign  end_cnt0=add_cnt0 && cnt0 == ;//cnt1always @(posedge clk or negedge rst_n)begin if(!rst_n)begincnt1 <= 0;endelse if(add_cnt1)beginif(end_cnt1)cnt1 <= 0;elsecnt1 <= cnt1 + 1;endendassign  add_cnt1=end_cnt0;assign  end_cnt1=add_cnt1 && cnt1 == ;//cnt2always @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt2 <= 0;endelse if(add_cnt2)beginif(end_cnt2)cnt2 <= 0;elsecnt2 <= cnt2 + 1;endendassign  add_cnt2=end_cnt1;assign  end_cnt2=add_cnt2 && cnt2 == ; 

:ab Cnt0  iid0d$ireg     [  : 0]                 cnt0                            ;wire                            add_cnt0                        ;wire                            end_cnt0                        ;//cnt0always @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt0 <= 0;endelse if(add_cnt0)beginif(end_cnt0)cnt0 <= 0;elsecnt0 <= cnt0 + 1;endendassign  add_cnt0=;       assign  end_cnt0=add_cnt0 && cnt0 == ;
:ab Cnt1  iid0d$ireg     [  : 0]                 cnt1                            ;wire                            add_cnt1                        ;wire                            end_cnt1                        ;//cnt1always @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt1 <= 0;endelse if(add_cnt1)beginif(end_cnt1)cnt1 <= 0;elsecnt1 <= cnt1 + 1;endendassign  add_cnt1=;       assign  end_cnt1=add_cnt1 && cnt1 == ;
:ab Cnt2  iid0d$ireg     [  : 0]                 cnt2                            ;wire                            add_cnt2                        ;wire                            end_cnt2                        ;//cnt2always @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt2 <= 0;endelse if(add_cnt2)beginif(end_cnt2)cnt2 <= 0;elsecnt2 <= cnt2 + 1;endendassign  add_cnt2=;       assign  end_cnt2=add_cnt2 && cnt2 == ;
:ab Cnt3  iid0d$ireg     [  : 0]                 cnt3                            ;wire                            add_cnt3                        ;wire                            end_cnt3                        ;//cnt3always @(posedge clk or negedge rst_n)beginif(!rst_n)begincnt3 <= 0;endelse if(add_cnt3)beginif(end_cnt3)cnt3 <= 0;elsecnt3 <= cnt3 + 1;endendassign  add_cnt3=;       assign  end_cnt3=add_cnt3 && cnt3 == ;
"-----------------------------------------------------------------------状态机-----------------------------------------------------------------"
:ab Ztj4    always@(posedge clk or negedge rst_n)beginif(!rst_n)beginstate_c <= IDLE;endelse beginstate_c <= state_n;endendalways@(*)begincase(state_c)IDLE:beginif(idl2s1_start)beginstate_n = S1;endelse beginstate_n = state_c;endendS1:beginif(s12s2_start)beginstate_n = S2;endelse beginstate_n = state_c;endendS2:beginif(s22s3_start)beginstate_n = S3;endelse beginstate_n = state_c;endenddefault:beginstate_n = IDLE;endendcaseendassign idl2s1_start=state_c==IDLE && ;assign s12s2_start=state_c==S1    && ;assign s22s3_start=state_c==S2    && ;always  @(posedge clk or negedge rst_n)beginif(!rst_n)beginout1 <=1'b0;      endelse if(state_c==S1)beginout1 <= 1'b1;endelse beginout1 <= 1'b0;endend
:ab Ztj    //state_calways@(posedge clk or negedge rst_n)beginif(!rst_n)beginstate_c <= IDLE;endelse beginstate_c <= state_n;endend//state_nalways@(*)begincase(state_c)IDLE:beginif()beginstate_n = S1;endelse beginstate_n = state_c;endendS1:beginif()beginstate_n = S2;endelse beginstate_n = state_c;endendS2:beginif()beginstate_n = S3;endelse beginstate_n = state_c;endenddefault:beginstate_n = IDLE;endendcaseendalways  @(posedge clk or negedge rst_n)beginif(!rst_n)beginout1 <=1'b0;      endelse if(state_c==S1)beginout1 <= 1'b1;endelse beginout1 <= 1'b0;endend

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

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

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

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

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

"---------------------------------文件头注释规则---------------------------------------"
:imap  ms:call AddAuthor()
:map  ms:call AddAuthor()
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    // 0i// ii
:imap		:NERDTree
:map		:NERDTree

let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplMapWindowNavVim = 1
:map    :TMiniBufExplorer
:imap    :TMiniBufExplorer
:ab   cmb   :CMiniBufExplorer

:map       
:map       
:map       
:map       

"语言设置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  :NERDTreeToggle
map  :NERDTreeFind
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  

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

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

:ab Initial initial begin#1;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 =~ '\ ' . arg3 . eq
endfunction

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

你可能感兴趣的:(FPGA,Linux,VIM)