如何修改一下vim的command ,在添加 ; 符号的同时完成换行?

将这个

flip   翻转[左右变成右左] fork   叉子\分岔\岔口\复刻

转换成

flip   ;翻转[左右变成右左] fork   ;叉子\分岔\岔口\复刻

我使用

:%s/^\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)\([ a-zA-Z]\+\)\([\U4E00-\U9FFF ]\+.\+\)$/\1;\2 \3;\4/g

现在我想

flip   翻转[左右变成右左] fork   叉子\分岔\岔口\复刻

变成

flip   ;翻转[左右变成右左] 
fork   ;叉子\分岔\岔口\复刻

如何修改一下vim的command ,在添加 ; 符号的同时完成换行?

阅读 2.6k
2 个回答
:s/^\([ a-zA-Z]\+\)\(\([\U4E00-\U9FA5]\+[^ ]*\)\+\)\([ a-zA-Z]\+\)\(\([\U4E00-\U9FA5]\+[^ ]*\)\+\)$/\1;\2\r\4;\5/g

多了两个括号
PS:中文匹配,网上有使用[^ -x]1的方法,测试发现也可以,不知道原理。
如果中文解释里面没有英文和空格,可以写得简单些

\(\([\U4E00-\U9FA5]\+[^ ]*\)\+\)
#可以修改为:
\([^ a-zA-Z]\+\)\+

  1. https://www.oschina.net/quest...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进