繁体   English   中英

如何删除 Vim 中某个字符之前的所有内容?

[英]How to delete everything before a certain character in Vim?

我有一个文本,例如

/path/delivery3/afA.csv:afA;0.000;12.015;Spreker-A;;<lang:English> Yes </lang:English> Niko. <lang:English> Yes </lang:English> Niko, gaan ons verder praat oor die #um leerbesigheid? [no-speech]

使用

:%s/.*;//

给我

English> Niko, gaan ons verder praat oor die #um leerbesigheid? [no-speech]

我如何找到第一个:和输出

afA;0.000;12.015;Spreker-A;;<lang:English> Yes </lang:English> Niko. <lang:English> Yes </lang:English> Niko, gaan ons verder praat oor die #um leerbesigheid? [no-speech]

请参阅“ 如何使正则表达式匹配器不贪婪?

的Vim的非贪婪版本*\\{-}

所以,而不是:%s/.*:// ,你应该得到你想要的结果:%s/.\\{-}://

如果要在一行上应用此更改:

df:

如果您想将其应用于缓冲区中的所有行,您可以使用上述普通模式命令记录一个简单的宏,或者:

:%norm! df:

如果您真的想使用:s命令执行此操作:

:%s/[^:]*://

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM