开发环境

win7系统中:用keil 对工程进行编译链接,用gvim编辑查看源文件。

实现效果

一键跳转到出现警告或者错误的源码。

实现原理

  1. gvim 调用外部shell脚本,对keil编译生成的log文件进行整理,警告信息汇总到warning_log.c ,错误信息整理到err_log.c。
function! LoadErrLogFile()
execute ":silent !bash.exe search_err.sh ./build/*log.htm"
execute ":e err_log.c"
endfunction function! LoadWarnLogFile()
execute ":silent !bash.exe search_warning.sh ./build/*log.htm"
execute ":e warning_log.c"
endfunction
  1. 外部脚本的具体实现
#!/bin/bash
if [ -f "$1" ];then
grep "): err" $1 > err_log.c
fi
#!/bin/bash
if [ -f "$1" ];then
grep "): warning" $1 > warning_log.c
fi
  1. _vimrc中的案件映射定义
nnoremap <C-F11> :call LoadErrLogFile()<CR>
nnoremap <C-F10> :call LoadWarnLogFile()<esc><CR>
nnoremap <F10> :e warning_log.c<esc><CR>
nnoremap <F11> :e err_log.c<esc><CR>
  1. keil 编译生成的build_log文件,错误或者警告信息,都是按照文件名+(行号)这样的格式显示。vim中有现成的组合键实现直接跳转到文件的指定行。
xx.c(linenum):error ...

使用

  1. 用gvim打开源代码,ctrl+ F11组合键生成错误信息汇总文件err_log.c,并打开err_log.c
  2. 按k或者j键(或者箭头键),选中错误行。按gF组合键跳转至出现错误的源码。
  3. 按F10键重新打开err_log.c
  4. 对警告信息的操作同理。

gvim keil 快捷跳转至出现错误(警告)行的更多相关文章

  1. 在Asp.Net的Global.asax中Application_Error跳转到自定义错误页无效的解决办法

    在开发Asp.Net系统的时候,我们很多时候希望系统发生错误后能够跳转到一个自定义的错误页面,于是我们经常会在Global.asax中的Application_Error方法中使用Response.R ...

  2. 关于在 ASP.NET 的 Global.asax 中 Application_Error 方法内,设置跳转到自定义错误页无效的问题

    转自:https://www.cnblogs.com/OpenCoder/p/5070645.html 在 Global.asax 中的 Application_Error 方法中,使用 Respon ...

  3. springmvc使用路径变量后再进行页面跳转会出现路径错误问题

    学习<Servlet.JSP和SpringMVC学习指南>遇到的一个问题,记录下. 项目代码 现象 @RequestMapping(value = "/book_edit/{id ...

  4. php foreach 语法的遍历来源数组如果不是一个有效数组php会出现错误警告 Invalid argument supplied for foreach()

    在php中,foreach语法的遍历来源数组如果不是一个有效数组,php会出现错误警告 Invalid argument supplied for foreach() ,但是很多时候这个数组是取自某些 ...

  5. C# log4net输出发生错误的行号

    别人调用我写的接口,总是报错,但我这测试是没问题的,就想着用log4net来跟踪一下. 跟踪后,发现接口确实有出错的日志,但是没有具体出错的地方. 通过输出日志的方式,跟踪不是很方便,就想着log4n ...

  6. javaScript 消除错误,并将错误记录在控制台,阻止浏览器错误警告

    当我们使用jquery,和其他各种框架时,有的时候会出现各种错误,  例如jquery文件报错,但又不影响功能,  又不能对jquery做出更改,怎么办呢? window.onerror=functi ...

  7. Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件

    Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件 在开发中,我们常常用打印log的方式来调试我们的应用.在Java中我们常常使用方法System.out ...

  8. Fiddler抓取https请求,解决“证书错误”警告

    要抓取走HTTPS内容,Fiddler必须解密HTTPS流量. 但是,浏览器将会检查数字证书,并发现会话遭到窃听.为了骗过浏览 器,Fiddler通过使用另一个数字证书重新加密HTTPS流量. Fid ...

  9. Ubuntu14.04配置VIM与GVIM 高亮、跳转与变量函数列表

    一.环境:刚安装好的Ubuntu14.04,本文只能保证 在Ubuntu下能达到效果. 二.安装GVim. sudo apt-get update sudo apt-get install vim-g ...

随机推荐

  1. 原生JavaScript中动画与特效的实现原理

    现如今,许多页面上均有一些动画效果.适当的动画效果可以在一定程度上提高页面的美观度,具有提示效果的动画可以增强页面的易用性. 实现页面动画的途径一般有两种. 一种是通过操作JavaScript间接操作 ...

  2. ng表单验证

    <angular>中form表单的验: 1.在form中加上 novalidate 2.利用ng-pattern验证 (*如果不匹配的话 ng-model是绑定不上数据的) 常用的表单验证 ...

  3. 小甲鱼Python第十八讲课后习题

    笔记: 1.函数与过程:过程(procedure)是简单的,特殊且没有返回值的:函数(Function)有返回值 Python严格来说只有函数没有过程 2.局部变量:在局部生效如在函数中定义的变量 3 ...

  4. 原生javascript制作时钟

    用JavaScript来制作实时的时钟 效果图如下: 接下来,我会一步一步向大家介绍如何制作,并将里面的一些值得注意的事项提出来. 首先是把框架搭构起来, <div> <canvas ...

  5. __x__(41)0909第五天__长表格

    长表格 银行流水,表格很长... 则需要将表格分为 表头 thead ,主体数据 tbody , 表格底部 tfoot 三个标签无顺序要求,易于维护:thead → tfoot → tbody 如果没 ...

  6. ASP.NET Core 2.2 迁移至 3.0 备忘录

    将 ASP.NET Core 2.2 迁移至 ASP.NET Core 3.0 需要注意的地方记录在这篇随笔中. TargetFramework 改为 netcoreapp3.0 <Target ...

  7. 14 - How to check replication status

    The people using PostgreSQL and the Streaming Replication feature seem to ask many of the same quest ...

  8. CentOS7安装GitLab服务

    安装GitLab服务 1.安装必要依赖 yum install -y curl policycoreutils openssh-server openssh-clients postfix 2.下载安 ...

  9. char和QChar(Unicode的编码与内存里的值还不是一回事)

    char类型是c/c++中内置的类型,描述了1个字节的内存信息的解析.比如: char gemfield=’g’;那么在由gemfield标记的这块内存的大小就是1个字节,信息就是01100111,8 ...

  10. Linux 的umask详解

    1.由权限得到umask的值 umask是一个系统变量,是一个由3个八进制数字组成的值,具体含义见表:每个数字都是八进制值1.2.4的OR操作结果. 作用:当文件被创建时,为文件的访问权限设定一个掩码 ...