繁体   English   中英

vim删除(字符/编号)和(字符编号)之间的单个空格

[英]vim delete single space between (character/number) and (character number)

我有一个文本文件,其中包含四个变量(TA 000,TB 111,T2 333,T56 R88),彼此之间用3个单个空格隔开:

TA 000   TB 111   T2 333   T56 R88   

是否可以使用vim擦除变量中的单个空格,并保持将变量分开的3个空格完整无缺?

TA000   TB111   T2333   T56R88

当然。 一种方法是捕获组 ,捕获单词+单个空格+数字,然后仅重新组合单词+数字:

:%s/\(\w\+\) \(\d\+\)/\1\2/g

另一种方法仅匹配单个空格(不替换任何空格),声明(但不匹配)它周围的内容:

:%s/\w\zs \ze\d//g

\\zs\\ze (您可以通过:h /\\zs等在这​​里查找任何内容)特定于Vim。 变体(也可以在其他正则表达式引擎中使用)将使用正向超前向后 超前 ,但是语法更加复杂。

如果这三个空格具有特殊含义(以限制匹配的位置),您也可以将它们合并到这两种方法中。 我将其留给您,因为相对容易解决的问题提供了很好的学习经验:-)

暂无
暂无

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

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