vim+makefile入门编辑,编译,差错实例
vim+makefile入门编辑,编译,差错实例
编写代码,一般在vim中编辑完后,输入:wq,在命令行下输入g++ hello.cc -o hello ,出现问题,打开vim,找到对应行修改,感觉是不是很烦很NC。其实vim自带的Quickfix列表就能帮助我们无需退出vim,即可进行编译代码,浏览错误信息。
简单单个文件的调试,只需增添环境变量makeprg即可。
编写一个简单的命名为hi.c的如下程序:
- #include<stdio.h>
- int main()
- {
- printf("hi");
- }
在vim的命令模式添加以下参数:
- :set makeprg=g++\ hi.c\ -o\ hi
- #gcc g++ 都可以,反斜杠之后记得加上空格,
- #要不然执行起来连在一起,不识别
- :make #执行make即可
注:c与c++程序效果一致
为单个文件编写简单的makefile
make 命令可以通过 -f 执行使用的makefile。如果在没有使用 -f 指定的情况下,会按照下面的顺序执行。
GNUmakefile, makefile 和 Makefile
推荐使用 Makefile 的名称,而GNUmakefile是不推荐的,它只用于特定到GNU make的版本上。vim Makefile,还是以上面的例子为例,输入如下:
- hi : hi.c
- g++ -o hi hi.c
- 在vim命令行中输入:make,效果和第一类相同
区别:一般的大型系统都是有makefile的,无需自己编辑,故一般使用第二种方法,可是第一个方法适合自己编写小程序并测试,方便快捷。
使用Quickfix进行排错
在vim下输入:make
- #若完全正确,则出现下列语句
- Press ENTER or type command to continue
- #若有错则出现,则出现下列语句
- hi.c:1:17: error: missing terminating > character
- Press ENTER or type command to continue
出错的话,按下回车键回到vim,键入:cw,开始调错。
命令 | 用途 |
---|---|
:cn[ext] | 跳转到下一项(错误) |
:cp[rev] | 跳转到上一项(错误) |
:cl | 列出所有错误 |
:cc | 显示错误详细信息 |
:copen | 打开quickfix窗口 |
:cclose | 关闭quickfix窗口 |
:col | 到前一个旧的错误列表 |
:cnew | 到后一个较新的错误列表 |
vim+makefile入门编辑,编译,差错实例的更多相关文章
- 技巧:Vim 的纵向编辑模式【转】
转自:https://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/ 张 曜民 和 卢 丹2011 年 2 月 18 日发布 WeiboGoog ...
- 技巧:Vim 的纵向编辑模式
https://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/ 开始之前 人类大脑对文字的处理是平面式的,所以我们浏览文章.查找资料或者重构代码 ...
- 【转载】技巧:Vim 的纵向编辑模式
如果要我选一个Vim中让我觉得Life Changing功能的话,我一定会选Vim的块编辑功能,也就是Ctrl+V,虽然还有些别的编辑器也有这功能,但目前为止,我从中受益颇大 原文地址:技巧:Vim ...
- 30天自制操作系统(二)汇编语言学习与Makefile入门
1 介绍文本编辑器 这部分可直接略过 2 继续开发 helloos.nas中核心程序之前的内容和启动区以外的内容先不讲了,因为还涉及到一些软盘方面的知识. 然后来讲的是helloos.nas这个文件 ...
- Java编辑编译及运行环境
Java编辑编译及运行环境 Microsoft Windows 编辑工具 EditPlus JDK JDK(Java Development Kit,Java开发工具包)安装JDK之后,其中bin文件 ...
- 转载:Vim 配置入门
转载:Vim 配置入门 原文地址:http://www.ruanyifeng.com/blog/2018/09/vimrc.html 作者: 阮一峰 Vim 是最重要的编辑器之一,主要有下面几个优点. ...
- vim 插件 入门
vim 手册 vimtutor 精简版本 help user-manual 详细手册 一些vim自带设置 set nu "显示行号 set cursorline "高亮显示当前行 ...
- Vim多窗口编辑
在Linux中使用vim编辑多个窗口 方式: 1. vim -o file1 file2 打开的两个文件上下窗口分布 比如当前目录有makefil ...
- makefile实验四 编译本地的源文件 + 变量的高级主题一
<一>编译本地的源文件 + 变量的模式替换 实验代码 root@ubuntu:~/Makefile_Test/5make_test# vim makefile target := t ...
随机推荐
- JavaScript获取当前url根目录(路径)
jsp: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&q ...
- Js DOM 详解
DOM事件类 基本概念 DOM事件的级别 1.DOM0 element.onclick = function(){} 2.DOM2 element.addEventListener("cli ...
- RocketMQ-事务消费
理论部分在https://www.jianshu.com/p/453c6e7ff81c中的 "三.事务消息".下面从代码层面看一下rockemq的事务消息 一.事务消费端. 从代码 ...
- linkin大话面向对象--组合
继承是实现类重用的重要手段,但是它有一个最大的坏处:破坏封装.相比之下,组合也是实现类重用的重要方式,但是采用组合方式实现类重用则能提供更好的封装性.比如人有手一样,在人的类中增加一个手的属性. 何时 ...
- 【转】sed正则表达式
1 正则表达式简介 正则表达式(Regular Expression) 是一种描述文本(或字符串)模式的工具.正则表达式常用于查找文本的场合.想想一下我们日常生活中的例子,假如你想从电话本里找一个联系 ...
- ng机器学习视频笔记(十六) ——从图像处理谈机器学习项目流程
ng机器学习视频笔记(十六) --从图像处理谈机器学习项目流程 (转载请附上本文链接--linhxx) 一.概述 这里简单讨论图像处理的机器学习过程,主要讨论的是机器学习的项目流程.采用的业务示例是O ...
- notepad++代码输出电话号
在网上看到一个程序员找合租的消息,希望找一个程序员合租,所以电话号码以代码的形式输出,闲来没事打出来玩玩.首先新建一个test.java文件,并敲入下面代码: 1 public class test{ ...
- [ASP.NET][Session] 使用 SQLServer 会话管理解决 Session 丢失问题
使用 SQLServer 会话管理解决 Session 丢失问题 步骤 1.通过命令行执行 aspnet_regsql.exe 程序(不要双击安装),先在 CMD 中输入命令 cd C:\Window ...
- 网易云免费OSS服务用做Markdown图床或博客图片外链
我使用据说是Windows下最好用的Markdown编辑器“MarkdownPad2”(个人感觉还是Visual Code+Markdown插件666)写Markdown,在贴图方面遇到一个问题,于是 ...
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) :
在hive命令行创建表时报错: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. ...