vim中如何用正则表达式减小两列数之间的空格数?
比如在vim中有两列数,第一行的两个数之间的距离是2,第二行是3,第三行是2,第四行是4,第五行是3,第六行是6...依此类推(之间的空格数并没有规律).如果是增加两列数...
比如在vim中有两列数,第一行的两个数之间的
距离是2,第二行是3,第三行是2,第四行是4,
第五行是3,第六行是6...依此类推(之间的空格数并没有规律).
如果是增加两列数之间的空格的话,我会,
我用的正则表达式是
:%s/\(\s\+\)/\1空格/g
由于空格不能显示出来,所以我用汉字代替了,
有几个空格就按几下空格键,但是我现在想减少
两列数之间的空格,有什么简单的办法呢?
最好是正则表达式.写完正则表达式后,最好能
解释一下.正确的,我一定会加分的 展开
距离是2,第二行是3,第三行是2,第四行是4,
第五行是3,第六行是6...依此类推(之间的空格数并没有规律).
如果是增加两列数之间的空格的话,我会,
我用的正则表达式是
:%s/\(\s\+\)/\1空格/g
由于空格不能显示出来,所以我用汉字代替了,
有几个空格就按几下空格键,但是我现在想减少
两列数之间的空格,有什么简单的办法呢?
最好是正则表达式.写完正则表达式后,最好能
解释一下.正确的,我一定会加分的 展开
1个回答
展开全部
%s/\s\+\zs\s//g
\s\+一个或多个空格
\zs 从此开始匹配 :h \zs
\s 一个空格
即:将跟在多个空格后的一个空格删去
%s/\s\+\zs\s\{n}//g
加一个\{n}可以删多个空格。n代表空格个数
\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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询