使用vim编辑编译c51程序
syn keyword cType uchar uint
" Vim filetype plugin file" Language: 51c" Maintainer: w-gh <wgh1992@gmail.com>" Last Change: 2013 Mar 21"Only do this when not done yet for this bufferif exists("b:did_ftplugin")finishendif" Don't load another plugin for this bufferlet b:did_ftplugin = 1" Using line continuation here.let s:cpo_save = &cposetlocal softtabstop=4"定义当前脚本有效的变量let s:lastShellReturn_C = 0 "最近一次编译的返回值let s:lastShellReturn_L = 0 "最近一次链接的返回值let s:ShowWarning = 1function Compiple()exe ":ccl""关闭快速修改窗口exe "update""文件如果有修改就进行保存let s:LastSheelReturn_C = 0let Sou = expand("%:p") "文档的完整路径let Obj = expand("%:p:r").s:Obj_Extension "obj文件的路径let v:statusmsg = '' "vim预定义变量"let Mp = &makeprgif !filereadable(Obj) || ((filereadable(Obj) && getftime(Obj) < getftime(Sou)))redraw! "更新屏幕setlocal makeprg=c51\ %"10sleepechohl WarningMsg | echo " compiling...."silent makeredraw!if v:shell_error != 0let s:LastSheelReturn_C = v:shell_errorendifif s:LastSheelReturn_C != 0exe ":bo cope"echohl WarningMsg | echo " compilation failed"elseif s:ShowWarningexe ":bo cw"endifechohl WarningMsg | echo " compilation successful"endifelse" echohl WarningMsg | echo "".Obj_Name."is up to date"endif"exe ":setlocal makeprg=Mpendfuncfunction Link()if s:LastSheelReturn_C != 0returnendiflet s:LastSheelReturn_L = 0"let Mp = &makeprglet v:statusmsg = ''setlocal makeprg=bl51\ %<.obj\ to\ %<.absechohl WarningMsg | echo " Creating Abs file...."silent makeredraw!if v:shell_error != 0let s:LastSheelReturn_L = v:shell_errorexe ":bo cope"echohl WarningMsg | echo "Creating Abs file failed"elseif s:ShowWarningexe ":bo cw"endifechohl WarningMsg | echo " Creating Abs file successful"endif"setlocal makeprg=Mpendfunctionfunction CreatHex()if s:LastSheelReturn_C != 0 || s:LastSheelReturn_L != 0returnendif"let Mp = &makeprglet v:statusmsg = ''setlocal makeprg=oh51\ %<.absechohl WarningMsg | echo " Creating Hex file...."silent makeredraw!if v:shell_error != 0exe ":bo cope"echohl WarningMsg | echo "Creating Hex file failed"elseif s:ShowWarningexe ":bo cw"endifechohl WarningMsg | echo " Creating Hex file successful"endif"setlocal makeprg=Mpendfunctionfunction Run()call Compiple()call Link()call CreatHex()endfunctionmap <F9> :call Run()<CR>let &cpo = s:cpo_saveunlet s:cpo_save
转载于:https://www.cnblogs.com/WooHxxd/archive/2013/03/21/2972465.html
使用vim编辑编译c51程序相关推荐
- 根据c51程序改写汇编语言,Keil C51编译及连接技术
主要介绍Keil C51的预处理方法如宏定义.常用的预处理指令及文件包含指令,C51编译库的选择及代码优化原理,C51与汇编混合编程的方法与实现以及超过64KB空间的地址分页方法的C51实现. 教学目 ...
- vim编译linux程序,Linux——vim程序编程器
文书编辑器:emacs.pico.nano.joe.vim.vi vi 三种模式: 一般指令模式: 以vi打开一个文件就是直接进入一般指令模式,删除,复制,粘贴 编辑模式: [i.I.o.O.a.A. ...
- ubuntu中vim编辑模式退格键无法删除,方向键乱入ABCD解决方法
最近把双系统删除后,使用虚拟机安装的Ubuntu18.04进行本地程序的编译(菜狗学习Linux下的编译调试过程) 就在照常使用vi test.cpp的时候,意外出现了 在输入错误后,使用Backsp ...
- 从头开始学51单片机之4:C51程序设计基础
一.单片机的C语言概述 C51语言或C51:基于51系列单片机的C语言或C语言编译器 Keil C51:集程序编辑.编译.连接.目标文件格式转换.调试.模拟仿真等功能于一体 C51程序开发流程:与汇编 ...
- vim编辑修改二进制文件以及对于二进制文件中幻数测试
vim编辑修改二进制文件以及对于二进制文件中幻数测试 这篇博客将讲述我在学习反汇编时遇到的关于编辑二进制文件的问题. 编辑环境:Ubuntu + vim 我测试的文件是一个可执行文件,也就是通过c程序 ...
- VS+VAX的提示功能快速编写C51程序
虽然有智能提示的软件有很多,比如Source Insight.Ultra Edit,但我都不太喜欢.周立功的TKStudio也用过,感觉还行,但还是不太满意. 由于学C#,我的电脑上安装了Visual ...
- G++ 4.4.7 无法编译模板程序,Vs可以,和解?智者尾部留言,本人第一次使用vs pro,通常并且习惯在linux下写些小东西,虽然程序简单;...
G++ 4.4.7 无法编译模板程序,Vs可以,和解?智者尾部留言,本人第一次使用vs pro,通常并且习惯在linux下写些小东西,虽然程序简单; vs 模板编译运行Ok \ linux g++ 4 ...
- keil流水灯c语言程序两个一起亮,51单片机学习之陆 —— 1.2 第一个c51程序(点亮流水灯)...
原标题:51单片机学习之陆 -- 1.2 第一个c51程序(点亮流水灯) 由于学校的板子跟我买的板子有些差异,为了大家的阅读,以后的所有程序编写烧录都以老师发的板子为主. 1 事先准备 a 驱动安装, ...
- linux vim编辑文本是 m,Linux编辑器之VIM
VIM是Linux功能最为强大的编辑器,它是由Unix下传统的文本编辑器VI发展而来的,VI M- Vi IMproved,VI的增强版,有彩色和高亮等特性,VIM和VI的区别可参看vi_diff.t ...
- deepin终端编译c程序_大神支招 如何在Linux下运行C语言程序
刚入门学习C语言程序的小伙伴比较常遇到的其中一个问题是:如何在Linux下运行C语言程序.今天针对这个热门问题,小编为大家准备了详细的教程! 小编先给大家普及一些关于C语言程序的基本常识:首先大家要清 ...
最新文章
- wps保存的csv文件是什么编码的_Python文件读写详解.md
- android handler作用,3.2.4 Handler的作用
- java 将一张图片切割成n个小图片,任意切割一张图片成新图片
- 机器学习从理论到工程的第二步-开发环境与工具篇
- python输入三行数据_3行Python代码就能获取海量数据?
- struts2学习笔记(一) MVC模式
- POJ-1191 棋盘分割 动态规划
- 一对多关联关系映射和设置级联属性
- [Hdu3555] Bomb(数位DP)
- XSD文件详解(以Maven为例)
- 全网最全Java微服务面试题总结(SpringCloud+Spring Boot)
- iOS6正式版不完美越狱教程(附安装讯飞输入法)
- PPC飞信问题...WM6.5版无法安装以及连接
- SpringAop_2通知(新手)和无法找到元素 'aop:aspectj-autoproxy' 的声明
- JSON数据结构(A、快速入门篇)(Yanlz+Data+JsonArray+JsonObject+JsonValue+JsonMapper.ToJson+JsonMapper.ToObject+)
- 阿里云安全送您六道平安符,恭贺新春! 1
- 计算机图形学应用基础考试,计算机图形学基础期末考试试题.docx
- 机器学习-数据科学库:matplotlib绘图
- 小小滑块可笑可笑-安卓滑块验证码通杀方案研究(1)
- 双向链表 - DoubleLinkedList