博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[vi / vim] 查找与替换-2
阅读量:5933 次
发布时间:2019-06-19

本文共 1569 字,大约阅读时间需要 5 分钟。

1、vim 单文件中查找方法  

正常模式下使用 / 或 ? 命令执行向后搜索或向前搜索  

/love   从光标位置向前搜索关键词 love  

?love   从光标位置向后搜索关键词 love  

正常模式下使用 n 或 N 命令执行 向前查找 或 向后查找 下一个关键词  

:set ic     忽略大小写命令,ic 为 ignore case 缩写   

:set is     边输入边显示匹配结果,is 是 incsearch 命令的缩写  

:set hls    高亮显示匹配结果,hls 为 highlight search 缩写  

可将上述设置放入.vimrc 文件中,设为默认搜索设置  

:set noic nois nohls    将取消上述设置  

:noh    暂时取消高亮显示,不会影响下次高亮显示匹配结果   

2、vim 多文件查找方法  

正常模式下使用 :vim 或 :vimgrep 命令执行多文件搜索  

搜索的时候涉及到选取文件问题,这里主要用到 * 作为通配符  

** 表示文件夹及子文件夹下的所有文件  

搜索 love 关键词  

:vim/love/*                     当前文件夹下的所有文件  

:vim/love/**                    当前文件夹及子目录下的所有文件  

:vim/love/**/*.php              当前文件夹及子目录下的所有 php 文件  

:vim/love/*.php aa/**/*.php     当前文件夹下的 php 文件和 aa 目录及子目录下的 php 文件  

使用 ** 和 * 可任意组合出想要搜索的文件  

:cw         查看搜索结果  

:ccl        关闭搜索结果  

:cn         查找下一个  

:cp         查找上一个  

3、vim 单文件替换方法  

单文件中使用 :s 命令进行替换操作  

替换操作会涉及几个常用的标记  

% 所有行  g 单行内所有匹配项  i 忽略大小写  c  确认是否替换  

关键词 old 替换为 new  

:s/old/new/              将光标所在行第一个 old 替换为 new  

:s/old/new/g            将光标所在行所有 old 替换为 new  

:%s/old/new/gc          全文执行替换,询问是否替换  

:3,10s/old/new/gic      将第3行到第10行内容替换,忽略大小写,且每个询问是否替换  

g i c 可自由组合  

4、vim 多问件替换  

多文件替换使用 :args 和 :argdo 命令,这两个命令结合可以对多文件执行相同操作,不仅是替换  

:args *.php                         将当前文件夹下的 php 文件加入参数列表。加入文件操作也可使用 ** 选择文件夹和子文件夹,和上述2 多文件查找用法一样  

:argdo %s/old/new/gc | update       执行替换操作,除使用:argdo 和 | update 外,其它替换操作和 3 中单文件替换用法是一样的  

args 命令为选取文件到列表,argdo 命令为对列表中的文件执行批处理操作  

:args       查看参数列表  

:argd *     清空参数列表  

:arga xx    添加 xx 文件到参数列表,和 args 添加一样,可用 ** 选择多文件夹和文件,参见上述 2 方法  

注意:  

在执行 argdo 操作的时候,要先保存当前文件,因为批处理操作会跳到其它文件。  

替换前要备份原先文件,update 必须加上,系统会自动保存替换后的文件,否则替换会被中断。  

其它:  

执行 args 添加文件操作会将遍历的文件同样添加到缓冲区列表。  

:ls             列出当前缓冲区列表文件  

:bd 3           将缓冲区3号文档删除到非缓冲区列表  

:ls!            列出非缓冲区列表文件  

:bw 3           可将缓冲区或非缓冲区列表文件彻底清除  

:argdo bw       可对参数列表中的所有文件执行清除缓冲区操作  

转载于:https://www.cnblogs.com/xiaofeiIDO/p/6530233.html

你可能感兴趣的文章
Java程序员必备的Intellij插件
查看>>
悲观锁和乐观锁和gap锁
查看>>
Search Engine
查看>>
支付宝支付之电脑网站支付与SpringMvc整合
查看>>
delphi xe6 让 ListView 在 Android 可回弹[根据龟山阿卍原创修改为xe6版本]
查看>>
HTTP状态码详解
查看>>
简单团队-爬取豆瓣电影TOP250-代码设计规范
查看>>
简单几何(向量旋转+凸包+多边形面积) UVA 10652 Board Wrapping
查看>>
并查集(加权) LA 4487 Exclusive-OR
查看>>
mysql
查看>>
软工概论第十四周总结
查看>>
asp.net 同时执行js事件和代码事件 导出 excel
查看>>
Android混合应用开发之页面跳转
查看>>
java继承后构造函数的继承机制
查看>>
ASP.NET编译执行常见错误及解决方法汇总之一
查看>>
ORACLE 12C RMAN 功能增强
查看>>
JAVA对象的序列化和反序列化
查看>>
NYOJ477A+B Problem III
查看>>
C# 自动运行代码 (创建windows 服务的形式 )
查看>>
Python的几个常用模块
查看>>