1、vim 单文件中查找方法
正常模式下使用/
或?
命令执行向后搜索或向前搜索
#从光标位置向前搜索关键词 love
/love
#从光标位置向后搜索关键词 love
?love
正常模式下使用 n
或 N
命令执行 向前查找 或 向后查找 下一个关键词
#忽略大小写命令,ic 为 ignore case 缩写
:set ic
#边输入边显示匹配结果,is 是 incsearch 命令的缩写
:set is
#高亮显示匹配结果,hls 为 highlight search 缩写
:set hls
可将上述设置放入.vimrc
文件中,设为默认搜索设置
#将取消上述设置
:set noic nois nohls
#暂时取消高亮显示,不会影响下次高亮显示匹配结果
:noh
2、vim 多文件查找方法
正常模式下使用 :vim
或 :vimgrep
命令执行多文件搜索
搜索的时候涉及到选取文件问题,这里主要用到*
作为通配符**
表示文件夹及子文件夹下的所有文件
搜索 love
关键词
#当前文件夹下的所有文件
:vim/love/*
#当前文件夹及子目录下的所有文件
:vim/love/**
#当前文件夹及子目录下的所有 php 文件
:vim/love/**/*.php
#当前文件夹下的 php 文件和 aa
:vim/love/*.php aa/**/*.php
目录及子目录下的 php 文件
使用**
和*
可任意组合出想要搜索的文件
#查看搜索结果
:cw
#关闭搜索结果
:ccl
#查找下一个
:cn
#查找上一个
:cp
3、vim 单文件替换方法
单文件中使用 :s 命令进行替换操作
替换操作会涉及几个常用的标记
% 所有行 g 单行内所有匹配项 i 忽略大小写 c 确认是否替换
关键词 old 替换为 new
#将光标所在行第一个 old 替换为 new
:s/old/new
#将光标所在行所有 old 替换为 new
:s/old/new/g
#全文执行替换,询问是否替换
:%s/old/new/gc
#将第3行到第10行内容替换,忽略大小写,且每个询问是否替换
:3,10s/old/new/gic
g i c
可自由组合
4、vim 多问件替换
多文件替换使用:args
和 :argdo
命令,这两个命令结合可以对多文件执行相同操作,不仅是替换
#将当前文件夹下的 php 文件加入参数列表。加入文件操作也可使用 ** 选择文件夹和子文件夹,和上述2 多文件查找用法一样
:args *.php
# 执行替换操作,除使用:argdo 和 | update 外,其它替换操作和 3 中单文件替换用法是一样的
:argdo %s/old/new/gc | update
args
命令为选取文件到列表,argdo
命令为对列表中的文件执行批处理操作
#查看参数列表
:args
#清空参数列表
:argd *
#添加 xx 文件到参数列表,和 args 添加一样,可用 ** 选择多文件夹和文件,参见上述 2 方法
:arga xx
注意:
在执行 argdo
操作的时候,要先保存当前文件,因为批处理操作会跳到其它文件。
替换前要备份原先文件,update
必须加上,系统会自动保存替换后的文件,否则替换会被中断。
其它:
执行 args
添加文件操作会将遍历的文件同样添加到缓冲区列表。
#列出当前缓冲区列表文件
:ls
#将缓冲区3号文档删除到非缓冲区列表
:bd 3
#列出非缓冲区列表文件
:ls!
#可将缓冲区或非缓冲区列表文件彻底清除
:bw 3
#可对参数列表中的所有文件执行清除缓冲区操作
:argdo bw