quickfix和vhdl编译

今天学习了一下网上down的一篇文章,vim使用进阶。作者仍然是一个c编程员,不过内容很不错,基本上各个方面都包括了。 

看到里面的“vim使用进阶:剑不高手 – quickflx”这一节,感觉对我实现vhdl的编译有很大的帮助。于是几经尝试,终于算是有所小成了。好吧,下面从头到尾梳理一遍: 

所谓 quickfix 模式,它和 Normal 模式、 Insert模式没什么关系,它只是一种加快你开发速度的工作方式。 

Quickfix 模式的主要思想是保存一个位置列表,然后提供一系列命令,实现在这个位置列 

表中跳转。 

 

想要使用Quickfix,首先得编译文件才行。那么第一步就是如何编译文件了。 

 

如果是c文件,那就比较方便,直接用make命令就可以(我估计),实在不行,各种文章页都有介绍。那么现在怎么设置用modelsimvcom命令来编译呢?

 

第一步,还是先设置环境变量吧,将$modelsim\win32加入PATH环境变量,一般安装了modelsim都会默认有这个。

 

第二步,设置用make来编译vhdl。要实现这个,就必须要改makeprg的值了。

"设置编译命令

set makeprg=vcom\ -work\ work\ %

 

设置好后,就可以使用:make命令直接编译了。

输入:make编译,在下方就会出现编译的信息了,如果文件正确的话,如下所示:

 

现在我们的编译后输出的信息就被加入到一个临时的文件里,quickfix可以查看这些错误信息:

quickfix 模式里经常用到的命令有:

:cc 显示详细错误信息 ( :help :cc )

:cp 跳到上一个错误 ( :help :cp )

:cn 跳到下一个错误 ( :help :cn )

:cl 列出所有错误 ( :help :cl )

执行:cl命令可以看到全部的编译信息:

 

如果我们的文件出现了错误,出错:

 

 

 

点击回车后,文件立刻就变成空白了:

 

 

 

其原因,不能判断相应的错误。

这就需要我们设置错误识别。

第三步,设置modelsim_vcom的错误识别:

"设置vhdl的错误识别 
set errorformat=\*\*\ %tRROR:\ %f(%l):\ %m,\*\*\ %tRROR:\ %m,\*\*\ %tARNING:\ %m,\*\*\ %tOTE:\ %m,%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %f(%l):\ %m,%tRROR:\ %m,%tARNING\[%*[0-9]\]:\ %m

这个设置好后,应该可以识别出错误了,执行:make后,光标自动跳转到第一个错误的行。

 

:cl命令可以查看全部错误信息。

:cope可以在新的分割窗口查看错误信息。双击相应的错误提示,可以跳转到相应的行。

 

第四步,现在已经实现了用vim直接编译,并查看错误,并且可以直接跳转到相应的行。基本功能可以算是实现了。为了方便使用,再设置个快捷键,将F7设置为编译本文件:

"编译一个vhdl文件

nmap <silent> <F7> <Esc>:make<CR>:cw<CR>

 

其中:cw命令的含义是如果有错误就打开quickfix,没错误就不打开。

 

另外,建立库还是需要另外设置的,否则第一次编译不会通过。

"建立一个库

nmap <F6> <Esc>:!vlib work<CR>

 

下面将所有的vimrc设置列在下面:

 

"建立一个库

nmap <F6> <Esc>:!vlib work<CR>

 

"编译一个vhdl文件

nmap <silent> <F7> <Esc>:make<CR>:cw<CR>

 

"设置编译命令

set makeprg=vcom\ -work\ work\ % 

 

"设置modelsim_vcom的错误识别

set errorformat=\*\*\ %tRROR:\ %f(%l):\ %m,\*\*\ %tRROR:\ %m,\*\*\ %tARNING:\ %m,\*\*\ %tOTE:\ %m,%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %f(%l):\ %m,%tRROR:\ %m,%tARNING\[%*[0-9]\]:\ %m

 

 

其他有用的命令:

:cw 如果有错误列表,则打开 quickfix 窗口 ( :help :cw )

:col 到前一个旧的错误列表 ( :help :col )

:cnew 到后一个较新的错误列表 ( :help :cnew )

:ccl 关闭quickfix窗口

 

 

 

posted @ 2010-09-13 20:00  楼心月  阅读(1044)  评论(0编辑  收藏  举报