GVIM的配置与使用

本文介绍了GVIM的配置和使用,强调了其通过键盘操作提升效率的优势。重点讲解了GVIM的基本命令,如移动、编辑、拷贝/粘贴、撤销/重做等,以及如何自定义规则以实现括号补全、代码块操作等功能。同时,还分享了针对Verilog编程的快捷键设置,如文件头注释、模块声明等。
摘要由CSDN通过智能技术生成

使用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>//===============================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值