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

简介: 第六章 FPGA至简设计原理-高效编辑器GVIM
前文可知“*”号键可以对光标所在的代码进行亮显示,但有几千行代码的时候设计师一时无法寻找到需要的代码,此时就需要另外一种快捷方式,即“/”键。在命令状态下按“/+想要查找的代码”,此时该文当中此代码都会高亮显示。依旧以“reg”代码为例,在命令状态下输入“/reg”,如下图命令栏所示,按下回车即可高亮显示代码“reg”。

1670840913827.jpg

1.4 删除复制命令


删除命令(dd,d2d):删除命令需要用到“dd”快捷方式。


将光标放在想要删除的位置,命令模式下按“dd”即可删除该行。那如果需要一下子删除很多行要如何操作呢?这种情况下可以计算需要删除的行数后进行操作。比如想要删除 2 行则可以按下“d2d”或“2dd”,此时光标后两行内容将被删除。


复制命令(yy,y5y):复制命令需要用到“yy”快捷方式。


在这里,复制的快捷方式“Ctrl+c”依然可以使用,除此之外再向同学们分享另外一种复制方式。命令模式下,将光标放在想要复制的位置后按“yy”即可复制该行。如果想要复制多行,比如复制当前及向下的 5 行,将光标放在需要复制的第一行后按下“y5y”或“5yy”,这时光标后 5 行内容就复制成功了。如下图所示,可以看到命令栏显示“复制了 5 行”,此时复制的是 570-574 行。

1670840934945.jpg


粘贴命令(p):粘贴命令需要用到“p”快捷方式。

例如想要粘贴刚刚复制的 5 行,在命令模式下按“p”则可以看到粘贴成功,并且命令栏会显示“多了 5 行”,如下图所示,第 582-586为粘贴的内容。

1670840947175.jpg


第2节 高级技巧


除了上一节所述的基础技巧外,还有一些更加高级的技巧。掌握了这些技巧后则可以在更加大型的设计上能达到事半功倍的效果。


2.1 替换命令


替换命令(:%s/xx/yy/gc,:63,72s/xx/yy/gc):替换命令需要用到的是“:%s/xx/yy/gc”快捷方式。


在设计中有时可能会遇到把某段代码替换成另一段代码的情况,这个时候就要用到替换命令。在命令模式下,输入“:%s/xx/yy/gc”,点击回车后按下“y”即可对代码进行依次替换。其中“:%s”代表着作用于整个文档,“xx”代表着文档中需要替换的内容,“yy”表示替换后的内容,“gc”是快捷命令的指令不需要进行修改,随后按下的“y”表示“yes”,即确定进行修改。

举个例子,如果想要将整个文档中的“reg”替换为“wire”,则在命令模式下输入“:%s/reg/wire/gc”,如图 2.1- 22 所示;接着点击回车,就会看到如图 2.1- 20 所示的状态,文档中所有“reg”都高亮显示,唯有第一个 reg 显示更浅,命令栏提示是否换为“wire”。此时按下“y”则可以看到替换成功,如图 2.1- 21 所示,可以看到第 63 行的“reg”已经成功替换为“wire”,灰色光标进行到了下一个高亮代码。


1670840970176.jpg

1670840978994.jpg

1670840985545.jpg

上面讲述的是整个文档中的某一代码需要替换,但有时候可能需要在某个范围进行替换。这种情况下将刚刚代表整个文档的符号“%”替换为范围即可。如果上例中想要替换第 63 到第 72 行的“reg”为“wire”,那么在命令模式下输入“:63,72s/reg/wire/gc”,如图 2.1- 25 所示;点击回车则可以看到 reg 都进行高亮显示;此时按下“y”即替换成功,如图 2.1- 23 所示。按照该方法依次替换可以发现,第 72 行以后就无法继续进行替换反而会显示“9 次替换,共 9 行”表示替换完成,如图 2.1- 26 所示,以上则为部分区域内替换代码的方法。

1670840996599.jpg

1670841006031.jpg

1670841012161.jpg

2.2 列删除方法


在日常编程中相信同学们都会使用删除的用法,即直接按“Delete”键删除想要的内容。但是有时候可能想要实现删除连续几行的某几个字符,这个时候就需要列删除的操作方法了。举个例子,假定想要删除下图中第 43 到第 49 行的第 3 到 5 个字符,通过观察可以发现下图想要删除的是“input”后的“put”。

1670841024440.jpg

首先在编辑模式下选择想要删除的区域,注意需要选到删除对应行和列。如下图所示,从第 43行第 3 个字符开始选择,到第 49 行第 5 个字符结束。

1670841034360.jpg

接着按下“Ctrl+q”,可以看到想要删除的部分被选中了,如果这里没有选对则要返回到上一步重新选取范围。

1670841043923.jpg

最后按下“Delete”键,结果如下图所示,可以看到 43 行到 49 行的三到五个字符都已经被删除,行删除操作完毕。

1670841051921.jpg

可以发现这里其实是从编辑模式转换到列操作模式从而完成了删除操作,可见列操作模式十分便捷。但是与此同时也要注意,刚刚可以实现删除内容都为“put”是因为至简设计法代码书写的比较规范整齐。如果代码写的乱七八糟,列删除后很难不影响文档后续编辑效果。养成良好习惯,后续会受益无穷。


2.3 列插入办法


刚刚学会了列删除的操作,但有时候也会需要列插入的操作。下面来通过例子学习一下列插入,即在列的前面插入相同的内容。假定需要在第 51-60 行前面插入“output”,如下图所示。

1670841065237.jpg

首先在 51 行按下“Ctrl+q”进入列操作模式,使用“h”、“j”、“k”、“l”四个按键”来控制上下左右,选择范围需要插入内容的范围,如下图所示。

1670841082275.jpg

选定好范围后按下大写的“I”,接着输入需要插入的数据“output”,然后按“Esc”退出。此时可以看到选中的每一列都加上了同样内容,如下图所示。

1670841093436.jpg

当然此方法不是必须使用键盘进行区域的选择,也可以使用鼠标选择范围后再按下“ctrl+q”,学会插入的方法后同学们可以按照个人习惯使用相应的区域选择方式。

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

热门文章

最新文章