FPGA|Gvim再认识

做为一名FPGA或者数字芯片设计人员,掌握vim是十分必要的,vim是编写代码的神器,使用vim来编写RTL代码会极大提高我们的效率,通过一些模板和规则的制作,vim也会让我们的代码看起来更加完美漂亮,尤其是对齐方面。
我接触vim也有段时间了,对vim也比较熟悉,这里我要推荐一本关于vim的书籍----《vim的实用技巧》。看完这本书,我对vim有了新的认识,也学了很多,以前总是想着制作快捷键和模板,却对vim自带的一些强大功能一无所知,真是惭愧。多掌握vim自带的一些,这样就可以随便在哪都可以用的顺手。下面我将会介绍一些vim自带的核心功能。
1、点范式
.命令可以让我们重复上次的修改,它是Vim中最为强大的多面手。那么何为修改?从进入插入模式的那一刻起(例如,输入i),直到返回普通模式时为止(输入),这期间做出的改变称为一次修改。vim会记录其每一个动作,做出这样一个修改后再用.命令的话,它就会重新执行这些按键操作。
核心思想就是:执行、重复、回退;一键移动,另一键执行
2、把撤销单元切成块。i{insert some text}是一次修改,u键会触发撤销命令。
3、双剑合璧,天下无敌。操作符 + 动作命令 = 操作。如:d{motion}。
操作符如下:

命令 用途
c 修改
d 删除
y 复制
g~ 反转大小写
gu 转化为小写
gU 转化为大写
> 增加缩进
< 减小缩进
= 自动缩进
动作命令如下:
aw:一个单词
ap:一段
l:一个字符
4、重新映射大小写转换键
5、区分实际行和屏幕行
jk命令会工具实际行移动,gj,gk则按照屏幕行移动。
6、单词和字符串;w单词,W字符串。单词由字母、数字、下划线组成,字符串则有非空白字符序列组成。
7、分隔符文本对象
  • a)一对圆括号i)圆括号内部
  • a}一对花括号i}花括号内部
  • a]
  • a'
  • a"
  • a`
  • at一对xml标签tags
8、范围文本对象
  • iw当前单词
  • aw当前单词及空格
  • iW当前字符串
  • aW当前字符串及 空格
  • is当前一个句子
  • as当前一个句子及 空格
  • ip当前段落
  • ap当前段落及 空格
9、位置标记
m{a-zA-Z}标记当前位置,'{mark}跳到位置标记处
10、再匹配括号间跳转%
11、寄存器
  • 无名寄存器(""):x,s,d{motion},c{motion},y{motion}命令都会覆盖无名寄存器中的内容。
  • 复制专用寄存器("0):当使用y{motion}是,要复制的文本会同时拷贝到无名寄存器和复制专用寄存器中。
  • 有名寄存器("a-"z)
  • 系统剪贴板("+),选择专用寄存器("*):如果想从vim复制文本到外部程序(反之亦然),则必须使用系统剪贴板。
  • 在可视模式下使用p命令时,会先从无名寄存器中取出内容,然后在把高亮的内容存到无名寄存器中。
  • p命令粘贴到光标后,P命令则是粘贴到光标前。
12、利用宏来制作模板
  • q键既是“录制”按钮,也是“停止”按钮。为了录制我们的按键操作,一开始需要按q{register},从而指定一个用于保存宏的寄存器。当状态栏中出现“记录中”时,表示录制已经开始。此后,我们执行的每一条命令都被宏捕获,直到再次按下q键停止为止。
  • 将宏粘贴到文档中,(:put a)
  • 编辑完宏后,0"ay$dd
  • 将我们录制好的宏粘贴到_vimrc中即可。
13、自定义模板命令说明
  • 插入文件头
  • Modulemodule模板
  • Definedefine模板
  • Codecode注释模板,用来分隔变量和代码,使整个代码布局更加合理
  • ii
  • qq列块模式
  • pp补全命令
  • hh插入模式下左移
  • jj插入模式下下移
  • kk插入模式下上移
  • ll插入模式下右移
  • inputinput对齐模板
  • output8output对齐模板,最后的数字取值范围是[0,32],默认为wire型的。
  • outputreg8output对齐模板,最后的数字取值范围是[0,32]。
  • reg8reg模板,最后的数字取值范围是[0,32]。
  • wire8wire模板,最后的数字取值范围是[0,32]。
  • Shixu时序逻辑代码模板,默认带2个else if
  • Shixu1时序逻辑代码模板,带一个else if
  • Zh组合逻辑代码模板
  • Jsq计数器代码模板
  • Jsq22层计数器模板
  • Jsq33层计数器模板
  • Ztj3段式状态机模板
  • 例化
  • 调整例化后的格式
  • =ap在普通模式下输入=ap,可以调整该段代码的自动缩进
  • 以上这些命令自己到.v文件里一个一个的试试,试过就能感受到vim的强大了。


【FPGA|Gvim再认识】福利:想要这个gvim的童鞋,可以关注一下我博客,然后再评论区留下邮箱,看到后我会发给你们的哦!!!

    推荐阅读