做为一名FPGA或者数字芯片设计人员,掌握vim是十分必要的,vim是编写代码的神器,使用vim来编写RTL代码会极大提高我们的效率,通过一些模板和规则的制作,vim也会让我们的代码看起来更加完美漂亮,尤其是对齐方面。
我接触vim也有段时间了,对vim也比较熟悉,这里我要推荐一本关于vim的书籍----《vim的实用技巧》。看完这本书,我对vim有了新的认识,也学了很多,以前总是想着制作快捷键和模板,却对vim自带的一些强大功能一无所知,真是惭愧。多掌握vim自带的一些,这样就可以随便在哪都可以用的顺手。下面我将会介绍一些vim自带的核心功能。
1、点范式
.命令可以让我们重复上次的修改,它是Vim中最为强大的多面手。那么何为修改?从进入插入模式的那一刻起(例如,输入i),直到返回普通模式时为止(输入<ESC>),这期间做出的改变称为一次修改。vim会记录其每一个动作,做出这样一个修改后再用.命令的话,它就会重新执行这些按键操作。
核心思想就是:执行、重复、回退;一键移动,另一键执行
2、把撤销单元切成块。i{insert some text}<Esc>是一次修改,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标签<xml>tags</xml>
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、自定义模板命令说明
- <F2> 插入文件头
- Module module模板
- Define define模板
- Code code注释模板,用来分隔变量和代码,使整个代码布局更加合理
- ii <Esc>
- qq 列块模式
- pp 补全命令
- hh 插入模式下左移
- jj 插入模式下下移
- kk 插入模式下上移
- ll 插入模式下右移
- input input对齐模板
- output8 output对齐模板,最后的数字取值范围是[0,32],默认为wire型的。
- outputreg8 output对齐模板,最后的数字取值范围是[0,32]。
- reg8 reg模板,最后的数字取值范围是[0,32]。
- wire8 wire模板,最后的数字取值范围是[0,32]。
- Shixu 时序逻辑代码模板,默认带2个else if
- Shixu1 时序逻辑代码模板,带一个else if
- Zh 组合逻辑代码模板
- Jsq 计数器代码模板
- Jsq2 2层计数器模板
- Jsq3 3层计数器模板
- Ztj 3段式状态机模板
- <F10> 例化
- <F7> 调整例化后的格式
- =ap 在普通模式下输入=ap,可以调整该段代码的自动缩进
- 以上这些命令自己到.v文件里一个一个的试试,试过就能感受到vim的强大了。
福利:想要这个gvim的童鞋,可以关注一下我博客,然后再评论区留下邮箱,看到后我会发给你们的哦!!!