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 ...
随机推荐
- django——中间件
1.中间件概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影响 ...
- ubantu安全卸载火狐浏览器
首先查看浏览器相应的安装包,命令: dpkg --get-selections |grep firefox 2.删除相面出现的包的命令: sudo apt-get purge pck1-name p ...
- nodejs+koa在header里面添加header信息
参考:https://koa.bootcss.com/ ctx.append('resultCode', '0000'); ctx.append('resultMessage', 'success') ...
- typedef 摘自百度百科
1.typedef的最简单使用 1 typedef long byte_4; 给已知数据类型long起个新名字,叫byte_4. 2. typedef与结构结合使用 1 2 3 4 5 6 7 8 9 ...
- BZOJ 4644
可以把修改当成删除再插入一个新的, 线性基不容易删除,就用线段树分治 好像手写的bitset在这里很慢 #include<bits/stdc++.h> using namespace st ...
- Python 之map、filter、reduce
MAP 1.Python中的map().filter().reduce() 这三个是应用于序列的内置函数,这个序列包括list.tuple.str. 格式: 1>map(func,swq1[,s ...
- CSS3_综合案例
综合案例 设置元素的 width,还可以利用 left 和 right 为了防止图片太小,background-size: 100% 100%; <!DOCTYPE html> <h ...
- bootstrap_开始
bootstrap 一个移动设备优先 UI 库,底层是用 less 写的,依赖于 jQuery. 面试点: bootstrap 的所有盒子都是怪异盒子模型(box-sizing: border-box ...
- 《Linux内核原理与分析》第一周作业 20189210
实验一 Linux系统简介 这一节主要学习了Linux的历史,Linux有关的重要人物以及学习Linux的方法,Linux和Windows的区别.其中学到了LInux中的应用程序大都为开源自由的软件, ...
- Spark 实现wordcount
配置完spark之后,使用spark实现wordcount,这一部分完全参考<深入理解Spark:核心思想与源码分析> 依然使用hadoop wordcountTest的那几个txt文件 ...