vim中如何用正则表达式减小两列数之间的空格数?

比如在vim中有两列数,第一行的两个数之间的距离是2,第二行是3,第三行是2,第四行是4,第五行是3,第六行是6...依此类推(之间的空格数并没有规律).如果是增加两列数... 比如在vim中有两列数,第一行的两个数之间的
距离是2,第二行是3,第三行是2,第四行是4,
第五行是3,第六行是6...依此类推(之间的空格数并没有规律).
如果是增加两列数之间的空格的话,我会,
我用的正则表达式是
:%s/\(\s\+\)/\1空格/g
由于空格不能显示出来,所以我用汉字代替了,
有几个空格就按几下空格键,但是我现在想减少
两列数之间的空格,有什么简单的办法呢?
最好是正则表达式.写完正则表达式后,最好能
解释一下.正确的,我一定会加分的
展开
 我来答
achillowy
2011-02-24 · TA获得超过304个赞
知道小有建树答主
回答量:143
采纳率:100%
帮助的人:63.6万
展开全部
%s/\s\+\zs\s//g

\s\+一个或多个空格
\zs 从此开始匹配 :h \zs
\s 一个空格
即:将跟在多个空格后的一个空格删去

%s/\s\+\zs\s\{n}//g
加一个\{n}可以删多个空格。n代表空格个数
追问
还是:%s/\s\+\zs\s//g这样比较好些,让人知道
这是命令行的命令
不过
:%s/\s\+\zs\s\s\s//g与
:%s/\s\+\zs\s{3}//g并不等效
前者是正确的,后者是错误的,我用的是
vim7.2,也许这是vim的一个bug.
明天采纳你的答案
追答
你的:
:%s/\s\+\zs\s{3}//g
少了一个\

应该是:
:%s/\s\+\zs\s\{3}//g
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式