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

浏览:50日期:2023-08-12

问题描述

将这个

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 ,在添加 ; 符号的同时完成换行?

问题解答

回答1:

:s/^([ a-zA-Z]+)(([U4E00-U9FA5]+[^ ]*)+)([ a-zA-Z]+)(([U4E00-U9FA5]+[^ ]*)+)$/1;2r4;5/g

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

(([U4E00-U9FA5]+[^ ]*)+)#可以修改为:([^ a-zA-Z]+)+https://www.oschina.net/quest... ↩回答2:

可以加一个 map,把 ; 映射成 ;<CR>

比如: inoremap ; ;<CR>

相关文章: