当前位置:   article > 正文

用GVIM/VIM写Verilog——VIM配置分享_gvim svstemverilog 插件

gvim svstemverilog 插件

使用VIM或GVIM最基本的配置,不包含任何插件相关的设置,VIM用于写verilog,非常欢迎大家在评论区分享讨论。
本文不进行插件的配置,不进行基本使用方式与使用技巧的说明,仅作为基本配置的分享交流。简单补充下使用方式,输入 cd ~ 然后 gvim .vimrc,输入下面的配置即可

!!!本文最新配置见如下地址:https://github.com/tyxiumud/gvim_for_verilog,同时增加了相关插件,后续会出相关插件的使用与更详细的vim介绍,该文章现已放弃维护

基本配置

set nocompatible "不兼容vi
syntax on  "语法高亮度显示 
set noerrorbells " 不让vim发出讨厌的滴滴声 
set shortmess=ati " 启动的时候不显示那个援助索马里儿童的提示 
set t_Co=256  "开启256色支持
set hlsearch  "搜索设置高亮
colorscheme desert "配色方案
set background=dark "配置主题整体的色调,只有两个选择:dark和light(暗色调和亮色调)
highlight Function cterm=bold,underline ctermbg=red ctermfg=green "color set
set nu  "显示行号
set relativenumber "显示相对行号
set cursorcolumn "add cursor in column
set cursorline "add cursor in line 
set guifont=Monospace\ 16 "gui style
"set guifont=Courier_new:h16
set lines=35 columns=118 "其中lines是窗口显示的行数,columns是窗口显示的列数
winpos 200 100 "后面两个参数指的自屏幕左上角像素值参考位置
set tabstop=4 "tab键相当于4个空格键
set expandtab "來將 tab 转成 space  combine with tabstop
set shiftwidth=4 "换行自动变为空格
set autoindent "设置自动缩进  自动缩进,当你第一行敲 tab + 文字 回车后 下一行自动给你加个 tab 
set backspace=2 "enable backspace
set novisualbell "不要闪烁
set laststatus=2 "启动显示状态行
set encoding=utf-8 "文件编码
set completeopt=menu,preview,longest "自动补全相关的设置
set bufhidden=hide

"禁止相关文件的产生
set noundofile "禁止un~文件
set nobackup "禁止~文件
set noswapfile "禁止swp文件

inoremap ( ()<ESC>i
inoremap [ []<ESC>i

"ban up and also keys 
"imap <Up> <Nop>
"imap <Down> <Nop>
"imap <Left> <Nop>
"imap <Right> <Nop>
"nmap <Up> <Nop>
"nmap <Down> <Nop>
"nmap <Left> <Nop>
"nmap <Right> <Nop>

imap jk <ESC> g,"在编辑模式下使用jk替代ESC进入命令模式
imap <C-L> <C-X><C-L> “使用CTRL L 代替 CTRL X +CTRL L 就是整个句子的补全
nmap ,l ^
nmap ,r $

"进行版权声明的设置
"添加或更新头
map <F3> :call TitleDet()<cr>
function AddTitle()
    call append(0,"/*=============================================================================")
    call append(1,"#")
    call append(2,"# Author: meng  - email@vip.qq.com")
    call append(3,"#")
    call append(4,"# QQ : xxxxxxxxx ")
    call append(5,"#")
    call append(6,"# Last modified: ".strftime("%Y-%m-%d %H:%M"))
    call append(7,"#")
    call append(8,"# Filename: ".expand("%:t"))
    call append(9,"#")
    call append(10,"# Description: ")
    call append(11,"#")
    call append(12,"=============================================================================*/")
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf
"更新最近修改时间和文件名
function UpdateTitle()
    normal m'
    execute '/# *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'
    normal ''
    normal mk
    execute '/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@'
    execute "noh"
    normal 'k
    echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
"判断前10行代码里面,是否有Last modified这个单词,
"如果没有的话,代表没有添加过作者信息,需要新添加;
"如果有的话,那么只需要更新即可
function TitleDet()
    let n=1
    "默认为添加
    while n < 10
        let line = getline(n)
        if line =~ '^\#\s*\S*Last\smodified:\S*.*$'
            call UpdateTitle()
            return
        endif
        let n = n + 1
    endwhile
    call AddTitle()
endfunction
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97

几点说明

1,禁用方向键,使用 jk 代替ESC

在VIN中操作,为了使得双手脱离键盘,但是方向键距离手指较远,ESC同样,因此禁用掉方向键,同时使用jk代替ESC进入命令模式。
VIM中有三种模式:命令模式,输入模式,命令行模式,其map映射
在vim配置文件中经常会看到map、nmap、imap
n ——表示在普通模式下生效。
v ——表示在可视模式下生效。
i ——表示在插入模式下效。
具体配置方式见上
这里为了满足大多数人的需求,在配置中将其注释掉,有需要的同学自行打开

2,自动补全命令配置

当我按下a的时候,弹出的提示框是包含所有a开头的提示,但是编辑器上只有a和光标,这个时候如果我需要再次使用b来进行过滤直接敲入b,编辑器上就是ab和光标,过滤出来的就是ab开头的单词。
请添加图片描述
该设置摘自vim自动补全的问题
设置行命令补时候,直接使用Ctrl-l即可,不用使用Ctrl-x Ctrl-l

imap <C-L> <C-X><C-L>
  • 1

3,进行版权声明的设置

改声明摘自博客,可以继续进行完善,使用F3即可调用

4,一些其他映射

"调整格式以便对齐(例化后的)

:map <F6> :s/^ *\./        ./<cr>^f(i                              <ESC>f)i                               <ESC>^24ldw24ldwa  <ESC>hdwj
  • 1

GVIM配置自动调整将F6映射为后面一长串指令,具体指令可以自行尝试

5,根本原则

简洁即美,过多的描述与过少的描述差不多,合适的代码注释,简洁方便的操作才是我们选择VIM的原因。不要追求绚丽的效果。不要忘记专注代码本身,VIM的基本配置只是我们的辅助手段,帮助我们尽可能的更加专注于编码本身的!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/516716
推荐阅读
相关标签
  

闽ICP备14008679号