oeasy教您玩转vim - 87 - # 内容查找grep命令
内容查找 grep
回忆
上次我们尝试了一下各种在vi中执行外部程序
- 可以排序
- 可以改大小写
- 还可以用管道
- 直接对于缓冲buffer文件进行操作
- 还是很方便的
其实还有一个外部命令很重要
- 根据内容搜索grep
- 这个怎么和vim配合呢?
在终端的grep
- 写一个oeasy.txt

- 保存并退出
- 复制粘贴出来两份

- 内容查询grep

- 可以在三个文件中找到
oeasy 去打开其中一个文件
vim oeasy.txt +1- 打开
oeasy.txt并且光标位于第1行
在vim中用grep
- 打开vim
:grep oeasy *.*- 搜索到好多匹配之后
- 放到一个prefix的列表中

- 还是查到了3个包含oeasy的文件
- 查询结果的展现形式来自于
grepformat这个选项

在结果列表中跳转
在匹配结果间跳转
:cfirst:cprev:cnext:clast
匹配结果列表
:copen新窗口打开列表:cclose关闭列表窗口:cc N跳到第N项
执行命令
:cdo {cmd}- 在每一个匹配的行执行命令{cmd}

:cfdo {cmd}- 在每一个匹配的文件上执行命令{cmd}

回忆一下
:bufdo:argdo:windo
总结
这次我们研究的是外部命令grep
- 可以在vim中使用grep
- 搜索的结果进入了列表
- 可以打开、遍历、跳转、关闭这个列表
- 也可以给列表中的匹配行或者每个文件执行命令
到此为止学了很多的命令
- 有内部的也有外部的
- 有的在命令行模式里面执行
- 还有的映射到一组键盘在正常模式下执行
- 但是都需要按下些什么按键才能支持
- 能否什么都不按自动就执行呢?
- 下次再说!
oeasy教您玩转vim - 87 - # 内容查找grep命令的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- 文本内容查找grep、文件查找find、正则匹配
一.文本内容查找工具 grep grep egrep (文本过滤) fgrep (不支持正则) 对文本的内容按照指定的匹配模式基于行来进行筛选 格式 grep [选项] 模式 文件 选 ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
随机推荐
- 大数据Hadoop集群的扩容及缩容(动态添加删除节点)
添加白名单和黑名单 白名单,表示在白名单的主机IP地址可以用来存储数据 企业中:配置白名单,可以尽量防止黑客恶意访问攻击. 配置白名单步骤如下:原文:sw-code 1)在NameNode节点的/op ...
- JS 实现鼠标框选(页面选择)时返回对应的代码或文本内容
JS 实现鼠标框选(页面选择)时返回对应的代码或文案内容 一.需求背景 1.项目需求 当用户进行鼠标框选选择了页面上的内容时,把选择的内容进行上报. 2.需求解析 虽然这需求就一句话的事,但是很显然, ...
- 一个简易的录屏demo
MyScreenRecord.cpp //#define LOG_NODEBUG 0 #define LOG_TAG "myrecord" #include <signal. ...
- JavaScript 中的 Range 和 Selection 对象
JavaScript 中的 Range 和 Selection 对象 前言 最近在做鼠标框选的需求,鼠标框选就需要用到 Range 和 Selection 对象. Range 表示选择的区间范围,Se ...
- PaddleOCR在 Linux下的webAPI部署方案
很多小伙伴在使用OCR时都希望能过采用API的方式调用,这样就可以跨端跨平台了.本文将介绍一种基于python的PaddleOCR识方案.喜欢的可以关注公众号,获取更多内容. 一. Linux环境下部 ...
- 面试必问:MySQL死锁 是什么,如何解决?(史上最全)
MySQL死锁接触少,但面试又经常被问到怎么办? 最近有小伙伴在面试的时候,被问了MySQL死锁,如何解决? 虽然也回答出来了,但是不够全面体系化, 所以,小北给大家做一下系统化.体系化的梳理,帮助大 ...
- ABC337
E 其实就是构造出最小的方案. 我们把二进制第 \(i\) 为 \(1\) 的所有数放到一起查询. 所以如果第 \(i\) 次询问的回答是 \(1\) 那么有问题的饮料二进制下的第 \(i\) 为就是 ...
- 如何防止 Elasticsearch 服务 OOM ?
ES 和传统关系型数据库有很多区别, 比如传统数据中普遍都有一个叫"最大连接数"的设置.目的是使数据库系统工作在可控的负载下,避免出现负载过高,资源耗尽,谁也无法登录的局面. 那 ...
- MAPJOIN中无法使用UDF
今天在写SQL时,遇到了一个异常,提示semantic exception generate map join error unable to find class,udf编写的没毛病,其他SQL也有 ...
- elasticsearch6.8 ik分词器需安装
elasticsearch6.8 ik分词器需安装order_info_es/_analyze POST{ "analyzer": "ik_max_word" ...