赞
踩
本文将详细描述将vim变成写Verilog代码的IDE客制化的实现过程,同时最后提供自己的环境。实现的过程中有使用自己写的,也有参考借鉴其他同学进行一定的修改,也有直接使用插件实现的相关功能。对应的功能实现部分均会给出相应的参考与插件地址等有关该功能的实现信息。有兴趣的同学可以据此,在此基础上实现适合自己的IDE工具。
都是慢慢抄,慢慢学,慢慢修改,千万记得自己总结,抄到的才是自己的~
本文篇幅较长,会慢慢更新
本文将分享使用gvim写verilog一系列的方便编码工具,将vim打造成一个IDE(IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员开发的应用软件,是它们的一个总称。)目的是使得编码过程中任何让你觉得繁琐的,重复性劳动,全部交给工具做,帮助更快更好的实现你的目标。这里笔者个人经验感觉哈,若是有些你觉得感觉繁琐的,愚蠢的操作,一定时没有使用正确的方式去做这件事~可以思考优化下做事的方式
关于VIM的版本建议linux下使用8.2以上的版本,windows使用最新的版本。更高的版本VIM进行了很多优化,其中重要的两个:1,支持插件管理(可以使得使用管理插件的方式更为便捷) 2,加入了异步执行命令的机制。关于版本的问题更详细的可以查看vim.org上有关版本更新的日志。这里不多进行赘述。
组为个性化的定制,笔者定义实现的所有功能如下所示:
下图是展示vim的完整配置使用展示图,包括文本编辑区的代码高亮,括号高亮等,buffer的展示,代码error,warning的展示,状态栏的信息展示,中文doc文件展示,文件目录窗口等。
这部分就是除去函数,复杂映射之外,更为基础的vimrc配置。关于vimrc的介绍请参见GVIM基础教程——vimscript编程初步,下图是基本的配置图,所有的配置与使用方式均有相关的注释。
jk
映射到ESC
。这是唯一的基本映射nnoremap <leader>ev :vsplit $MYVIMRC<cr>
nnoremap <leader>sv :source $MYVIMRC<cr>
在编码的时候,我们已经有了接口信息,一般在设计详述中包括位宽,信号名称,输入输出,功能描述这些信息,我们只需要将这些信息经过简单的处理,即可简单的实现端口的定义。处理的形式如上图功能演示部分的形式。这个功能很简单,功能实现使用的是较为复杂的映射来实现的。可自行参考配置实现的方式。
使用,ii
、,oo
来分别实现对输入输出的定义
该功能使用的插件是Ale(Asynchronous Lint Engine 异步lint引擎),该插件是非常优秀的异步代码检查工具,支持众多编码语言。这里的异步是指他的进行过程是在后台自行进行的,不会影响到你当前对于vim的操作,vim在8.1版本后推出了异步执行命令的机制,以此为基础的代码包括大名鼎鼎的Youcompleteme, Ale。Ale项目地址如下:https://github.com/dense-analysis/ale,点击这里访问。个人理解就是插件会调用可以使用的linter(语法检查工具),然后将其输出的检查信息整理展示出来,达到一个语法检查的目的。其中linter需要自行安装。跟详细的使用以及关于ale的介绍见这里 ALE的基本介绍、使用与配置
更聪明的自动补全功能
任意自加数的生成
遇见插件在linux下报错^M的问题
注意将Tab替换为空格键
查看vim版本,支持的接口等
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。