第六章 FPGA至简设计原理-高效编辑器GVIM(上)

简介: 第六章 FPGA至简设计原理-高效编辑器GVIM

第六章 FPGA至简设计原理-高效编辑器GVIM


GVIM 是类似于记事本的代码编辑工具,但相比于记事本其输入效率更高,可以更好的提升工作效率。由于 GVIM 具有丰富的代码补全、编译及错误跳转等便于编程的功能,其在 IC 开发领域得到了广泛应用,也为学习 FPGA 工程提供了助力。GVIM 是一款 FPGA 工程师常用的软件,本章节分享一下该软件的使用方法以及小技巧。本书的所有设计代码都是在此软件上完成的,因此希望同学们可以熟练掌握其使用方法,为自己的 FPGA工程师之路打好基础。


本章节详细讲述了使用 GVIM 的必备技巧,掌握这些技巧是使用 GVIM 的前提。如果可以掌握基本技巧,在不追求效率的前提下就足以进行所有设计。对于初学者来讲,一定要认真学习本章节,牢记本章所讲的技巧。打好基础之后才能熟能生巧,只有在最开始将知识掌握扎实才能提高后续程序设计的效率。


GVIM 软件的操作界面如下所示,可以看出设计界面直观简洁,易于操作。

1670840647733.jpg

GVIM 软件官方一共有四种操作模式,分别是命令模式(command-mode),插入模式(insert-mode),可视模式(visual-mode)和正常模式(normal-mode)。但是为了方便教学和学习,至简设计法将 GVIM 界面分为三种模式,分别是命令模式、编辑模式和列操作模式。这种划分虽然不是很严谨,但是可以更好的学习熟悉软件。后续内容分享中本书都会采用至简设计法划分的三种模式,请同学们注意区分。下面就开始对各模式进行逐一学习。


首先学习命令模式,顾名思义此时键盘上所有的按键都是各种不同的操作命令,因此只能观看代码或者发出命令,而无法像记事本一样进行文本编辑。这时的软件界面是粗光标闪烁的状态,如下图所示。

1670840658663.jpg

接下来学习编辑模式,依旧可以按照字面意思进行理解,此模式下的 GIVM 就相当于记事本,在键盘上的所有按键都可以对文件进行输入。此时软件界面为细光标闪烁的状态,并且下方命令栏显示“插入”,如下图所示。

1670840679595.jpg

最后介绍列操作模式,此模式下可以在块内实现列对齐的同时对相应块进行添加空格、字符、缩进等操作。此模式下选择的块为加粗阴影显示,如下图所示。

1670840696771.jpg

在 GIVM 软件中的三种模式可以进行互相转换。GVIM 默认模式为命令模式,在此模式下按“i”进入编辑模式,按“Ctrl+q”进入列操作模式。

1670840707152.jpg

在编辑模式下按“Esc”可以进入命令模式,选中想要操作的行按“Ctrl+q”可以进入列操作模式。这里需要注意,编辑模式下单独输入“Ctrl+q”无法进入列操作模式,需要使用鼠标协助,如下图所示,对想要编辑的块进行选择后在按下“Ctrl+q”方可进入列操作模式,转换关系如图 2.1- 7。

1670840746346.jpg

1670840754047.jpg

在列操作模式下,按“Esc”可以进入命令模式,在任意位置点击鼠标即可进入编辑模式,转换关系如下图所示。

三种模式互换关系如下:

1670840761969.jpg

第1节 基本技巧


了解 GVIM 的模式后来学习使用 GVIM 的基本技巧。这里不会详细介绍 GVIM 的所有命令,只会分享日常中的常见命令,这些命令足以覆盖所需的大部分场合。与此同时,这些小技巧也提高了工作的效率。为便于后续学习,也为了提高自身能力,建议同学们尽可能掌握这些技巧。


当然对初学者来说,在还不会设计代码的前提下熟练使用快捷方式的确有些困难。但是在学习之初,希望初学者可以花费一些时间,将这些小技巧逐一进行尝试并进行操作练习。“磨刀不误砍柴工”,不要小看用在快捷命令的练习时间,如果各位工程师真正掌握了这些命令的使用方法,一定可以在工作中受益无穷。


1.1 补全命令


补全命令(Ctrl+p):在进行代码编写的过程中可能会出现同一工程内需要重复输入很多代码的情况,此时可以使用补全命令。


即输入代码第一个字母后按下“Ctrl+p”,随后会出现前面已经输入过的具有相同首字母的所有代码,此时可以选择需要的对应代码。这里需要注意,只有本文档中已经完整编写过的代码才可以在相同首字母下拉菜单中看到,没有出现过代码的无法调用。

举个例子,假设希望输入“else”,就可以在编辑状态下,输入“e”后按“Ctrl+p”,此时会出现下拉菜单。可以看到会出现已经编写过的所有以字母“e”为开头的代码,按上下键选择所需代码,点击回车后就可以得到最终代码。

1670840781824.jpg


1.2 跳转命令


文件内跳转(gg, G, :100):跳转命令一共有三个快捷方式,“gg”、“G”、“:100”。

当一个工程比较复杂的时候,代码可能达到了上千行,此时手动翻页寻找代码的方式效率很低,而跳转命令可以快速跳转到指定位置,从而节省时间,提高效率。先来看“gg”,命令模式下在文档任意位置按下“gg”即可跳转到文档的最顶端开头部分。需要注意的是此命令的使用环境是命令模式,前面有讲过在其他两种模式下可以按下“Esc”进入命令模式,在命令模式下输入两个小写“g”,即可成功跳转到顶端。跳转后结果如下图所示。

1670840797378.jpg

接下来是“G”,命令模式下在文档任意位置按下“G”即可跳转到文档的底端部分。注意此命令的使用环境依旧是命令模式,在其他两种模式下需要按“Esc”进入命令模式,在命令模式下输入一个大写“G”即可成功跳转到底端,跳转后结果如下图所示。

1670840806797.jpg

顶端底端都有了,如何跳转到指定页呢?这里就需要“:”了。在命令模式下输入“:”,最下面命令栏就会显示出来,接着输入想要跳转的行数,点击回车就会跳转到对应行。例如想要跳转到 100行,命令状态下在任意位置按“:”后输入 100,如图 2.1- 13 所示,点击回车就会跳转到第 100 行。跳转后结果如图 2.1- 14所示。

1670840817252.jpg

1670840826066.jpg

1.3 搜索命令

搜索命令(*,/, n, N):搜索命令中需要用到“*”、“/”、“n”、“N”等快捷键。
一个工程中想要知道都有哪些地方出现了某一代码,就可以使用“*”号键。命令状态下将光标移动到想要搜索的代码后按下“*”号键即“Shift+8”,随后此工程所有相同的代码都会高亮显示。

通过“n”和“N”可以实现这些高亮代码之间的选择切换。小写“n”可以切换到下一个高亮代码,大写“N”可以切换到上一个高亮代码。这样就可以在搜索出的高亮代码之间实现跳转,用搜索命令搜索出的“reg”代码如下图所示。

1670840844309.jpg

相关文章
|
6月前
|
人工智能 物联网 5G
|
4月前
|
搜索推荐 C#
XAF 属性编辑器(PropertyEditor)- 原理篇
XAF Blazor 的 PropertyEditor 在 DEV 24.1.3 中经历了重大改进,更接近 WinForm。PropertyEditor 担任业务逻辑与各平台交互的角色,利用 INotifyPropertyChanged 监听属性变化。新版本弃用了 ComponentAdapter,代之以接口和基类,简化自定义编辑器的创建,降低了复杂度,同时增加了 ComponentModel 的 ComponentType 属性以自动化组件渲染和属性映射。这使得 Blazor 的 PropertyEditor 创建变得更为简便。
|
6月前
|
前端开发 JavaScript
前端 富文本编辑器原理——从javascript、html、css开始入门(二)
前端 富文本编辑器原理——从javascript、html、css开始入门
300 0
前端 富文本编辑器原理——从javascript、html、css开始入门(二)
|
6月前
|
监控 数据可视化 安全
JVM工作原理与实战(二):字节码编辑器jclasslib
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了字节码编辑器jclasslib的安装和使用等内容。
175 4
|
6月前
|
前端开发 JavaScript 索引
前端 富文本编辑器原理——从javascript、html、css开始入门(一)
前端 富文本编辑器原理——从javascript、html、css开始入门
237 0
|
6月前
|
前端开发 JavaScript 数据库
前端 富文本编辑器原理
前端 富文本编辑器原理
141 0
|
JavaScript 前端开发 API
如何使用 layui 的富文本编辑器组件?底层原理是什么?
如何使用 layui 的富文本编辑器组件?底层原理是什么?
575 0
|
设计模式 监控 数据可视化
从0-1设计BI仪表板编辑器
了解如何从0-1设计BI仪表板编辑器
169 1
|
数据采集 数据可视化 前端开发
BI图表可视化编辑器设计
本文为《浅谈BI系统设计》第3篇原创文章。在前几篇文章我们对BI系统有全局了解,后续将逐一讲解核心模块设计原理及功能实现。 接下来讲解可视化图表部分,本篇文章三个角度来说 数据可视化原理 BI中的图表可视化 图表编辑器的设计
443 1
|
Java 异构计算
第六章 FPGA至简设计原理-高效编辑器GVIM(下)
第六章 FPGA至简设计原理-高效编辑器GVIM
184 0
第六章 FPGA至简设计原理-高效编辑器GVIM(下)