首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

vimgrep和make的不同quickfix缓冲区

您好!您提到的 vimgrepmake 是 Vim 编辑器中的命令,它们分别用于搜索文本和执行 Makefile。Vim 是一款流行的文本编辑器,具有强大的扩展性和高度可定制性。

vimgrep 是 Vim 中的一个命令,用于在多个文件中搜索指定的文本模式。它将搜索结果保存在 Vim 的 "quickfix" 缓冲区中,以便用户查看和处理。quickfix 缓冲区是 Vim 中的一个特殊缓冲区,用于显示编译器或其他工具的错误和警告信息。

make 是一个流行的构建工具,用于自动化软件构建过程。它根据 Makefile 中的规则来编译和链接源代码,生成可执行文件。如果您在 Vim 中使用 make 命令,它将在 quickfix 缓冲区中显示编译和链接过程中的错误和警告信息,以便您可以轻松地找到和修复问题。

vimgrepmake 的 quickfix 缓冲区之间的不同之处在于,vimgrep 是用于搜索文本模式的,而 make 是用于显示编译和链接错误的。因此,它们的用途和显示的信息类型不同。

总之,vimgrepmake 都是 Vim 编辑器中非常有用的命令,它们可以帮助您更高效地编写和调试代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • vim 从嫌弃到依赖(21)——跨文件搜索

    当我们要频繁不同文件间进行跳转的时候,要频繁的退回到 shell 并执行 vim 来打开,操作上比较繁琐。...vim 为这种需求提供了自己的工具—— :grep 命令和 :vimgrep 在vim中输入 :grep "\-\- TODO" **/*.lua 会发现 vim 在下方显示了当前所有搜索到的内容。...遍历 quickfix 列表 quickfix 列表是由我们执行 :make 命令或者 :grep 命令所产生的,它会保存一个或者多个文件位置信息。...因为它与搜索模式下使用的模式相同,因此这里我们可以先用查找模式来在一个文件中进行试验,试验成功后再使用 vimgrep,否则错误的结果将会污染历史的 quickfix 列表,影响后续使用 colder...然后使用模式域留空的方式查找,即 :vimgrep //gj **/*.lua 关于 vimgrep的内容就介绍到这里了,一般我很少使用原装的 :grep和 :vimgrep。

    1.1K30

    vim从安装到熟练,这篇文章就够了

    可以用grep或vimgrep查找一个模式都在哪些地方出现过, 其中:grep是调用外部的grep程序,而:vimgrep是vim自己的查找算法。...其实vimgrep在读纯文本电子书时特别有用,可以生成导航的目录。 比如电子书中每一节的标题形式为:n. xxxx。...编译 vim提供了:make来编译程序,默认调用的是make, 如果你当前目录下有makefile,简单地:make即可。...如果你没有make程序,你可以通过配置makeprg选项来更改make调用的程序。 如果你只有一个abc.Java文件,你可以这样设置: 然后:make即可。...@: 重复上一次的冒号命令。 q: 正常模式下,q然后按':',打开命令行历史缓冲区, 可以像编辑文件一样编辑命令。 q/和q? 可以打开查找历史记录。 执行外部命令 :!

    4.7K10

    make、make all和make clean的使用方法

    刚接触Linux,认为直接make后就完成了编译,没想到编译出的结果存在很大问题,原来是make、make all和make clean的使用方法不对。...1、理论 make、make all 和 make clean 是在使用 make 构建系统时常见的命令。它们用于编译和管理项目中的代码。...以下是每个命令的功能和区别: 1、make 功能:make 命令默认会查找当前目录下的 Makefile 或 makefile 文件,并执行该文件中的第一个目标(target)。...如果第一个目标依赖于其他目标,make 会先构建这些依赖目标。 使用场景:通常用于编译和链接项目中的代码。如果没有指定目标,make 会尝试编译和链接整个项目。...make clean:清理项目,删除之前构建过程中生成的文件,准备一个干净的构建环境。 2、实践 让我们通过一个具体的例子来解释 make、make all 和 make clean 的功能和区别。

    4.5K10

    vim 从嫌弃到依赖(22)——自动补全

    我们对 c/c++ 语言执行 :make 也就是在调用 shell 中的 make 命令。它会将编译产生的错误信息存储在 quickfix 列表中。我们上一节中介绍了如何操作 quickfix 列表。...同样的 :make 也支持使用相同的方法进行改造。 :make 命令中,使用 makeprg 来执行外部命令,使用 errorformat 来格式化输出到 quickfix 中。...> 来切换补全菜单中的上一条和下一条。...k : 从字典文件中加载的补全项 i : 从当前文件和包含文件中读取 d : 从当前文件和包含文件中读取使用 define定义的宏 完整的内容可以使用 :h 'complete' 来查看。...同时也介绍了如何使用快捷键来进行不同项的补全,现在对这些快捷键总结如下: : 普通关键字补全,主要来源自缓冲区列表和当前缓冲区 : 与 <Ctrl

    1.1K20

    golang new和make的区别

    Go语言中new和make都是用来内存分配的原语(allocation primitives)。简单的说,new只分配内存,make用于slice,map,和channel的初始化。...通过new其返回一个指向新分配的类型为int的指针,指针值为0xc00004c088,这个指针指向的内容的值为零(zero value)。 同时,需要注意的是不同的指针类型零值是不同的。...close(chv) make不仅可以开辟一个内存,还能给这个内存的类型初始化其零值。...小结: make和new都是golang用来分配内存的內建函数,且在堆上分配内存,make 即分配内存,也初始化内存。new只是将内存清零,并没有初始化内存。...make返回的还是引用类型本身;而new返回的是指向类型的指针。 make只能用来分配及初始化类型为slice,map,channel的数据;new可以分配任意类型的数据。 目录

    5.7K20

    聊聊golang的make和new函数

    今天在聊make和new函数之前,咱们先来看一种现象 当然如果你对golang的指针还不是很了解,可以先看看这篇文章,以做到无缝连接 看完这个,我彻底理解了golang的指针 case1 var a...如果想赋值的话,需要用new或者make函数向系统提前申请内存才行。...make和new的区别 make和new都是用来内存分配的方法,简单的说,new只分配内存, 「make用于slice,map,和channel的初始化,不仅可以开辟一个内存,还能给这个内存的类型初始化其零值...」 make返回的还是引用类型本身;而new返回的是指向类型的指针。...make func make(t Type, size ...IntegerType) Type new func new(Type) *Type make只能用来分配及初始化类型为slice,map

    30320

    Go语言new和make的区别

    Go语言中new和make都是用来内存分配的原语(allocation primitives)。简单的说,new只分配内存,make用于slice,map,和channel的初始化。...通过new其返回一个指向新分配的类型为int的指针,指针值为0xc00004c088,这个指针指向的内容的值为零(zero value)。同时,需要注意的是不同的指针类型零值是不同的。...close(chv)make不仅可以开辟一个内存,还能给这个内存的类型初始化其零值。...小结:make和new都是golang用来分配内存的內建函数,且在堆上分配内存,make 即分配内存,也初始化内存。new只是将内存清零,并没有初始化内存。...make返回的还是引用类型本身;而new返回的是指向类型的指针。make只能用来分配及初始化类型为slice,map,channel的数据;new可以分配任意类型的数据。

    37220

    Go中make和new的区别

    在 Go 语言中,make和new都用于分配内存,但它们有以下区别:一、功能不同 make用于初始化切片(slice)、映射(map)和通道(channel)这三种特定的数据结构,并返回一个初始化后的对象...它可以用于任何类型,但主要用于值类型(如结构体)和基本数据类型的内存分配。 二、返回值类型不同 make返回的是初始化后的特定数据结构本身,而不是指针。...三、适用场景不同 make适用于切片、映射和通道的初始化,因为这些数据结构需要特定的内部初始化操作才能正常使用。...例如,如果你要创建一个切片来存储一系列整数,使用make([]int, length, capacity)可以确保切片有正确的长度和容量,并初始化为整数类型的零值。...四、初始化程度不同 make会对特定的数据结构进行完整的初始化,包括设置长度、容量(对于切片和通道)、内部的哈希表(对于映射)等,使其可以立即使用。

    8200

    Golang中make和new的区别

    对于不同的数据类型,零值的意义是完全不一样的。...比如,对于bool类型,零值为false;int的零值为0;string的零值是空字符串 make: func make(t Type, size ...IntegerType) Type 同样用于内存分配...,但和new不同,make用于channel,slice和map的分配,而且返回的类型就是这三个类型本身,而不是它们的指针,因为这三种类型本身就是引用类型,所以就没必要返回他们的指针了。...具体而言,有如下几种用法: (1)make(map[string]string):即缺少长度的参数,只传类型,这种用法只能用在类型为map或chan的场景 (2)make([]int, 2):指定了长度...,例如make([]int, 2)返回的是一个长度为2的slice (3)make([]int, 2, 4):既指定了长度len为2,又指定了cap为4 注意:由于这三种类型都是引用类型,所以必须得初始化

    73730

    golang中make 和 new 的区别

    golang中make 和 new 的区别 介绍 new new 是一个内建函数,用于分配一块内存并返回指向该内存的指针。 它会为该类型的零值分配内存,并返回指向该类型的指针。...fmt.Println("Name:", p.Name) fmt.Println("Age:", p.Age) } 运行结果 make make 也是一个内建函数,主要用于创建切片、映射和通道等引用类型的数据结构...make 只能用于切片、映射和通道的创建,不适用于其他类型。...make 仅适用于切片、映射和通道的创建,返回的是对应引用类型的实例。 返回类型: new 返回的是指向类型的指针。 make 返回的是对应引用类型的实例,而不是指针。...初始化: new 分配的内存会被清零,返回的是该类型的零值的指针。 make 返回的是被初始化过的引用类型的实例,如切片、映射和通道等。

    5200

    无插件Vim编程技巧

    如果你要改变当前浏览的目录,或是查看当前浏览的目录,你可以使用和shell一样的命令: :cd – 改变当前目录 :pwd  – 查看当前目录 缓冲区 其实,你用:E 浏览打开的文件都没有被关闭...: – (非活动的缓冲区) a (当前被激活缓冲区) h (隐藏的缓冲区) % (当前的缓冲区) # (交换缓冲区) = (只读缓冲区) + (已经更改的缓冲区) 窗口分屏浏览 相信你在《Vim...你可以简单地使用: :qa   – 退出全部  :wqa  -保存全部并退出全部 Quickfix 假如我们有一个hello.cpp文件和一个makefile,于是我们可以直接在vim下输入 :...make , 于是就可以make这个hello.cpp文件,如果出错了,我们需要按回车返回,这个时候,我们可以使用下面的命令来把出错显到在vim的分屏中: :cw 于是,就会出现下面右边的那个样子...上图中左边是我的makefile,右边是我的错误百出的源代码,右边下面是quickfix窗屏。你可以看到quickfix窗屏指向的第一个错误已经定位到我们相就错误的文件行上了。

    1.4K20

    Go语言中new和make的区别

    Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。在我们定义生成变量的时候,可能会觉得有点迷惑,其实他们的规则很简单,下面我们就通过一些示例说明他们的区别和使用。...变量的声明 变量的声明我们可以通过关键字,然后就可以在程序中使用。当我们不指定变量的默认值时,这些变量的默认值是他们的零值,比如类型的零值是0,类型的零值是,引用类型的零值是。...对于值类型的声明不需要,是因为已经默认帮我们分配好了。 要分配内存,就引出来今天的和。 new 对于上面的问题我们如何解决呢?既然我们知道了没有为其分配内存,那么我们使用new分配一个吧。...make 也是用于内存分配的,但是和不同,它只用于、以及切片的内存创建,而且它返回的类型就是这三个类型本身,而不是他们的指针类型,因为这三种类型就是引用类型,所以就没有必要返回他们的指针了。...注意,因为这三种类型是引用类型,所以必须得初始化,但是不是置为零值,这个和是不一样的。 从函数声明中可以看到,返回的还是该类型。

    53370

    Go语言中new和make的区别

    Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。在我们定义生成变量的时候,可能会觉得有点迷惑,其实他们的规则很简单,下面我们就通过一些示例说明他们的区别和使用。...这就是上面错误提示的原因。 对于值类型的声明不需要,是因为已经默认帮我们分配好了。 要分配内存,就引出来今天的new和make。 new 对于上面的问题我们如何解决呢?...make make也是用于内存分配的,但是和new不同,它只用于chan、map以及切片的内存创建,而且它返回的类型就是这三个类型本身,而不是他们的指针类型,因为这三种类型就是引用类型,所以就没有必要返回他们的指针了...注意,因为这三种类型是引用类型,所以必须得初始化,但是不是置为零值,这个和new是不一样的。...make函数是无可替代的,我们在使用slice、map以及channel的时候,还是要使用make进行初始化,然后才才可以对他们进行操作。

    38520

    Vim激荡30年发展史

    备份和undo 根据不同的用户设置,Vim可以防止四种类型的丢失: 编辑过程中(两次保存之间)崩溃。Vim会定期将未保存的修改写入交换文件来防止这种情况。...编辑-编译循环 :make 命令会执行用户选择的程序来构建项目,然后将输出收集到quickfix缓冲区中。quickfix记录中的每一项都记录了文件名、行号、列号、类型(警告或错误)和消息。...如果需要查看有关当前错误的更多信息,可以使用 :cc ,然后用 :copen 命令查看完整的quickfix缓冲区。...还可以使用 :cile、:caddfile 或 :cexpr 命令,无需运行:make而自行填充quickfix缓冲区。 Vim能够利用指定的errorformat字符串解析编译的输出。...下面是应用的例子。不同的项目有不同的编码规范,所以你可以将默认的C设置与特定项目的设置结合起来。

    1.4K30

    in 和 exists 的不同

    in OR exists in 是把外表和内表做 hash 连接,而 exists 是对外表作 loop 循环,每次 loop 循环再对内表进行查询,一直以来认为 exists 比 in 的效率高的说法是不准确的...如果两个表大小相当,则 in 和 exists 的效率是差不多的,如果两个表的一大一小,则子查询表大的用 exists,子查询表小的用 in。...但是如果两个表差不多大,或者子查询的表较小的时候,就可以选择 in 做查询了。...not in OR not exists not in 和 not exists 两个的选择就比较简单了,就是仅使用 not exists 即可。...这主要是因为 null 是无法进行“操作”的,也就是 null 的几个原则: 如果 null 参与算术运算,则该算术表达式的值为 null 。

    81110
    领券