vim批量修改多文件数据
:ar[gs] 打印参数列表
:arga[dd] 添加项到参数列表
:argd[elete] 删除项从参数列表
:arge[dit] 添加项到参数列表并编辑此项
:argdo 执行一条命令在参数列表里的所有项
:argg[lobal] 定义全局参数列表
:argl[ocal] 定义一个局部参数列表
:argu[ment] 转到参数列表中指定的文件
:n[ext] 编辑下一个文件。
:prev[ious](:N) 编辑上一个文件。
:fir[st] 编辑第一个文件。
:la[st] 编辑最后一个文件。
:wnext,保存当前文件,并编辑下一个文件。
:wprevious,保存当前文件,并编辑上一个文件。
例:
:args *.txt 将当前目录下(不包含子目录)所有txt后缀文件载入参数列表
:args d:\a\*.txt 将目标目录下(不包含子目录)所有txt后缀文件载入参数列表
:args d:\a\**\*.txt 将目标目录下(包含子目录)所有txt后缀文件载入参数列表
:args 查看参数列表内容
:argdo %s/aaa/bbb/ge | update 对参数列表内所有文件执行语句替换(e代表静默模式,update代表写入)
vim文本插入自增长变量
:let i=0 定义自增长变量及初值
* 通过查找方式定位插入位置
qq 将操作记录到q寄存器中
:exe'normal i'.i|let i=i+1 执行插入操作并对变量累加
n 查找下一位置
q 结束操作记录
100@@[100@q] 重复执行操作记录
例2:输出编号
:let line='01' |for i in range(1,200) |if i>=100 |exe'normal o'.line.i |let i=i+1 |elseif i>=10 |exe'normal o'.line.'0'.i |let i=i+1 |elseif i!=1 |exe'normal o'.line.'00'.i |let i=i+1 |else |exe'normal i'.line.'001' |endif |endfor
vim批量获取文本信息并修改
qq 将操作记录到q寄存器中
:let line = getline(".")|let repl = substitute(line, '@')|call setline(".", repl) 获取光标所在行内容|使用@号截断内容|将光标所在行内容替换
j 光标进入下一行
q 结束操作记录
10000@@[10000@q] 重复执行操作记录
浙公网安备 33010602011771号