首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不能正确地使用vim命令来打破行呢?

为什么不能正确地使用vim命令来打破行呢?
EN

Stack Overflow用户
提问于 2016-12-17 13:22:37
回答 1查看 39关注 0票数 1
代码语言:javascript
复制
flip   翻转[左右变成右左] fork  叉子\分岔\岔口\复刻
:%s/^\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)$/\1;\2\3;\4/g

它变成了

代码语言:javascript
复制
flip   ;翻转[左右变成右左] fork  ;叉子\分岔\岔口\复刻

当只使用一个vim命令添加分号时,我想将它分成两行。

尝试了三个不同的正则表达式,同样的错误结果显示在我的vim.(debian+vim)上。

代码语言:javascript
复制
:%s/^\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)$/\1;\2\r\3;\4/g
:%s/^\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)$/\1;\2\n\3;\4/g
:%s/^\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)$/\1;\2\r\n\3;\4/g

如何使用一个vim命令获得以下输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-17 13:59:16

下列措施将起作用:

代码语言:javascript
复制
:%s/^\([a-zA-Z ]\+\)\([^a-zA-Z ]\+\) \([a-zA-Z ]\+\)\([^a-zA-Z ]\+\)$/\1\2\r\3\4/g

这只会将\r添加到替换位置,似乎您想要换行。

它还简化了一些事情,只需在行的开头查找任意数量的alpha字符或空格,然后是任意数量的非alpha字符或空格,然后是空格,然后是任意数量的alpha字符或空格,然后是行尾之前的任意数量的非alpha字符或空格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41199016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档