gvim keil 快捷跳转至出现错误(警告)行
开发环境
win7系统中:用keil 对工程进行编译链接,用gvim编辑查看源文件。
实现效果
一键跳转到出现警告或者错误的源码。
实现原理
- 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
- 外部脚本的具体实现
#!/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
- _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>
- keil 编译生成的build_log文件,错误或者警告信息,都是按照文件名+(行号)这样的格式显示。vim中有现成的组合键实现直接跳转到文件的指定行。
xx.c(linenum):error ...
使用
- 用gvim打开源代码,ctrl+ F11组合键生成错误信息汇总文件err_log.c,并打开err_log.c
- 按k或者j键(或者箭头键),选中错误行。按gF组合键跳转至出现错误的源码。
- 按F10键重新打开err_log.c
- 对警告信息的操作同理。
gvim keil 快捷跳转至出现错误(警告)行的更多相关文章
- 在Asp.Net的Global.asax中Application_Error跳转到自定义错误页无效的解决办法
在开发Asp.Net系统的时候,我们很多时候希望系统发生错误后能够跳转到一个自定义的错误页面,于是我们经常会在Global.asax中的Application_Error方法中使用Response.R ...
- 关于在 ASP.NET 的 Global.asax 中 Application_Error 方法内,设置跳转到自定义错误页无效的问题
转自:https://www.cnblogs.com/OpenCoder/p/5070645.html 在 Global.asax 中的 Application_Error 方法中,使用 Respon ...
- springmvc使用路径变量后再进行页面跳转会出现路径错误问题
学习<Servlet.JSP和SpringMVC学习指南>遇到的一个问题,记录下. 项目代码 现象 @RequestMapping(value = "/book_edit/{id ...
- php foreach 语法的遍历来源数组如果不是一个有效数组php会出现错误警告 Invalid argument supplied for foreach()
在php中,foreach语法的遍历来源数组如果不是一个有效数组,php会出现错误警告 Invalid argument supplied for foreach() ,但是很多时候这个数组是取自某些 ...
- C# log4net输出发生错误的行号
别人调用我写的接口,总是报错,但我这测试是没问题的,就想着用log4net来跟踪一下. 跟踪后,发现接口确实有出错的日志,但是没有具体出错的地方. 通过输出日志的方式,跟踪不是很方便,就想着log4n ...
- javaScript 消除错误,并将错误记录在控制台,阻止浏览器错误警告
当我们使用jquery,和其他各种框架时,有的时候会出现各种错误, 例如jquery文件报错,但又不影响功能, 又不能对jquery做出更改,怎么办呢? window.onerror=functi ...
- Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件
Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件 在开发中,我们常常用打印log的方式来调试我们的应用.在Java中我们常常使用方法System.out ...
- Fiddler抓取https请求,解决“证书错误”警告
要抓取走HTTPS内容,Fiddler必须解密HTTPS流量. 但是,浏览器将会检查数字证书,并发现会话遭到窃听.为了骗过浏览 器,Fiddler通过使用另一个数字证书重新加密HTTPS流量. Fid ...
- Ubuntu14.04配置VIM与GVIM 高亮、跳转与变量函数列表
一.环境:刚安装好的Ubuntu14.04,本文只能保证 在Ubuntu下能达到效果. 二.安装GVim. sudo apt-get update sudo apt-get install vim-g ...
随机推荐
- 使用Callable接口创建线程和使用线程池的方式创建线程
1.使用Callable接口的方式实现多线程,这是JDK5.0新增的一种创建多线程的方法 package com.baozi.java2; import java.util.concurrent.Ca ...
- jwt、session、oauth 异同
1,jwt 和session机制 首先jwt 和session机制 都是用户认证的,oauth 不是 session 的流程: 1.用户向服务器发送用户名和密码. 2.服务器验证通过后,在当前对话(s ...
- 【C语言程序】今天是祖国母亲的生日,特意编写一个小程序,为祖国母亲庆生~
#include <stdio.h> #define N 80 int main(int argc, char *argv[]) { char a[N]; printf("Hel ...
- SpringCloud中之Ribbon实现负载均衡
之前都不能够理解负载均衡,不知道其怎么实现.现在学习了ribbon后,知道了可以开启多个服务实例,那么选择其中一个服务实例的策略就是负载均衡了,感觉还是很神奇的.
- codecademy课程笔记——JavaScript Promise
Promise是一种表示异步操作最终的结果的对象,一个Promise对象有三种状态 Pending: 初始状态 ,操作还未完成 Fullfilled:操作成功完成,且这个promise现在有一个r ...
- Javascript Date类型
Date 类型使用自 UTC 1970 年 1 月 1日 午夜 开始经过的毫秒数来保存日期. 创建日期对象 var now = new Date();//获取当前日期 Date.parse ...
- thinkphp 区间查询 查符合某个字段的数据 但是n个条件 用and or 配合
function get_arbeit_yuexin($screen){ $data = get_money_data_s($screen,2); dump($data['url_id']);//$d ...
- day01 python入门之路
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...
- NoSuchMethodError 问题
最近maven升级到gradle后,总是报NoSuchMethod error.然后 ,报错的类确实是有这个方法,一切看起来都没有问题.那么运行时jvm到底加载的哪里的类呢?有没有相关的命令可以查询, ...
- JAVA生成(可执行)Jar包的全面详解说明 [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]
辛苦所得,转载还请注明: https://www.cnblogs.com/applerosa/p/9739007.html 得空整理了关于java 开发中,所有打包方式的 一个操作方法, 有基于ID ...