vim 多行匹配删除至行首

查看:270
本文介绍了vim 多行匹配删除至行首的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

问题描述
需要对一个较大的文件进行处理,删除每一行中匹配的字符串之前的内容。文件内容格式如下:


aaa dd kk segmentfault=1098-0987-3jlc ok=okj hello=0cvqa
12jk od=kk segmentfault=1jj8-lk87-oplc suiji=che shachu=keng
pppp=dd bbo;=9as segmentfault=0876-oj87-3pac zifu=ka neirong=xia

期望能够删除每行第一次出现 segmentfault 之前的内容至行首,期望处理的结果如下


segmentfault=1098-0987-3jlc ok=okj hello=0cvqa
segmentfault=1jj8-lk87-oplc suiji=che shachu=keng
segmentfault=0876-oj87-3pac zifu=ka neirong=xia

目前方案
使用宏来执行

qa    ---开启宏录制
/resourceId ---随意操作
d0               ---随意操作,删除至行首
j                  ---随意操作,跳转到下一行
q     ---退出宏
1000000@a ---执行1000000次

缺点:效率低下,极其耗时

期望方案
期望直接列编辑(ctrl + v)之后进行 删除每行匹配位置至行首 的操作。
该如何实现?

解决方案

试试正则替换吧,列编辑,你的关键字位置不一样,直接列编辑不了

:%s/^.*segmentfault/segmentfault/g

这篇关于vim 多行匹配删除至行首的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆