Vim 查找通配符值并替换为相同的通配符

Vim Find Wildcard Value and Replace With same wildcard with small pertibation

我希望在一个大字符串中找到特定符号的出现,并在该符号前添加 space。

注意:我在文件中也出现了 space 已经添加到该符号的情况。

输入

6890 4 2.025 12.219883 -80.86158
6891 1 36.45 11.314275-79.050365
6892 1 36.45 14.031098-79.955972
6893 1 2.025 13.12549-78.144757

输出:

6890 4 2.025 12.219883 -80.86158
6891 1 36.45 11.314275 -79.050365
6892 1 36.45 14.031098 -79.955972
6893 1 2.025 13.12549 -78.144757

我首先想到的解决方案将具有以下形式

:%s/*-*/* -*/

此表格不考虑现有 spaces

:%s/\(\d\)-/ -/g

在整个文件 % 中替换 s/ 一个数字 \d,(并捕获它 \(\d\))后跟减号 -,然后替换 / 与捕获的内容 </code> 后跟 space 和减去 <code> - 选项 / “所有出现的行” g