专栏首页ICSOC.TECH君子善器之按行号跳转:用vim查阅verilog编译信息的一个小技巧

君子善器之按行号跳转:用vim查阅verilog编译信息的一个小技巧

前段时间请求IT把Linux服务器上的vim升级到vim7.4,一个想法是可以用vim7.0之后加入的特性gF,可以实现跳转到光标所在文件的指定行,如果文件名后面跟着行号的话。这个命令很高效,不用记下行号,gf,然后输入行号,而是直接gF一步到位。

然而仿真verilog的常用工具VCS和NC在给出的编译信息中,文件名和行号的组合格式却不尽相同,gF时灵时不灵,不能处理所有的情景。

因此Google了一把,发现原来早在vim7.0推出之前,就有人通过vim函数实现了gF。于是copy下来,针对VCS和NC的特定格式做了修改,还挺好用。从网络来,到网络去,发出来分享。

把下面这段粘贴到你的.vimrc里。在编译报告中有文件名的地方,输入gf,就可以跳转到verilog文件的指定行了。

新浪播客里面怎么添加代码啊?下面的代码被处理的不像样了,有些字符也没有了。容我研究一下。。。研究的结果是抓张图上来吧!!!!!!

(微信公众号貌似智能一些,粘贴代码不做手脚!赞腾讯一个,鄙视渣浪!)

V司的同事可以直接到我的.vimrc里面copy。

function! GotoFileWithLineNum()
" exclude comma from file name search
     " change the 'isfname' option temporarily to pick up file name in ncverilog MSG
      let bak_isfname = &isfname
     set isfname=@,48-57,/,.,-,_,+,#,$,%,~,="
     " filename under the cursor
     let file_name = expand('<cfile>')
     if !strlen(file_name)
         echo 'NO FILE UNDER CURSOR'
         return
     endif

     " look for a line number separated by any :,"<space>
     if search('\%#\f*[:, "]*\zs[0-9]\+')
         " change the 'iskeyword' option temporarily to pick up just numbers
         let temp = &iskeyword
         set iskeyword=48-57
         let line_number = expand('<cword>')
         exe 'set iskeyword=' . temp
     endif

     exe 'set isfname=' . bak_isfname
     " edit the file
     exe 'e '.file_name

     " if there is a line number, go to it
     if exists('line_number')
         exe line_number
     endif
 endfunction

 map gf :call GotoFileWithLineNum()<CR>
 map gsf :sp<CR>:call GotoFileWithLineNum()<CR>

最后吐槽一下Synopsys的VCS,一个软件里面警告的格式竟然不统一,有的带双引号,有的不带!NC的貌似扩展性更强,不但在文件名后附带行号,还附带列号!

本文分享自微信公众号 - icsoc(ic-soc)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 有限域的基本概念和质数、不可分解多项式的搜寻算法

    有限域(Finite Field)在数学上属于群论(Group Theory)的范畴,又称伽罗瓦域(Galois Field)。简单来说,就是包含有限个元素的域...

    icsoc
  • PrimeTime DMSA 的目录问题

    Synopsys 的 Timing sign off 工具 PrimeTime 支持的 DMSA 模式,通过一个 Master Process,在分布式计算平台...

    icsoc
  • 关于 Verilog 的 TimeScale

    最近做芯片的功耗分析,需要用 PTPX 读入门级仿真写出的 VCD 文件。门级仿真的速度非常慢,所以关注了一下和速度相关的 TimeScale 的东西。

    icsoc
  • Python代码分析工具:PyCheck

    PyChecker是Python代码的静态分析工具,它能够帮助查找Python代码的bug,而且能够对代码的复杂度和格式等提出警告。

    py3study
  • [菜鸟SpringCloud实战入门]第四章:远程调用服务实战

    欢迎来到菜鸟SpringCloud入门实战系列(SpringCloudForNoob),该系列通过层层递进的实战视角,来一步步学习和理解SpringCloud。

    后端技术漫谈
  • iTween那些事儿(二)

      上次我们简单浏览了一番iTween的使用和原理,这次我们换个角度,转而看看iTween目前存在的一些缺陷以及一点点可能的改进之处,当然,这些所谓的缺陷或者改...

    用户2615200
  • 08-TypeScript中的类

    类的概念通常是在后端开发中实现的思想,比如C#、C++或Java,传统的JavaScript开发通过使用原型模式来模拟类的功能。在TypeScript中,天生就...

    用户1910585
  • python中__name__的意义以及作用

    这里打印了两次,第一次实在main.py在进行import test的时候,进行的打印,第二次才是test.HaveFun()中执行的打印,可以发现,这里的 ...

    OLDPAN
  • Markdown简易教程

    Markdown是一种标记语法,通过标记字符,给文章的内容增加样式,使用Markdown可以更方便的控制格式的同时专注于文章内容的编写,可以支持导出为pdf,h...

    caoayu
  • 前端开发中的基础思考题

    https://segmentfault.com/a/1190000016330980

    前端博客 : alili.tech

扫码关注云+社区

领取腾讯云代金券