You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Vim字符类搜索Unicode字符并调换文本位置

Vim中实现Unicode中文与英文行内容的调换

针对将中文(Unicode汉字)在前、英文在后的行内容调换顺序的需求,可使用Vim支持Unicode字符类的正则替换命令实现:

替换命令

:%s/\(\p{Han}\+\)\s\+\(\w\+\)/\2  \1/g

命令解释

  • \(\p{Han}\+\):捕获连续的Unicode汉字字符,\p{Han}是Vim专门用于匹配汉字的Unicode字符类,\+表示匹配至少一个汉字
  • \s\+:匹配中文与英文之间的一个或多个空白字符(包括空格、制表符)
  • \(\w\+\):捕获连续的英文单词字符(字母、数字、下划线,适配原场景的英文内容)
  • \2 \1:将捕获的第二组(英文内容)和第一组(中文内容)调换位置,中间保留两个空格(可根据实际需求调整空格数量)

效果验证

原输入:

数据     Data
子树      subtree

执行命令后得到期望输出:

Data  数据
subtree 子树

如果需要适配更广泛的Unicode东亚字符(如日文假名、韩文),可将\p{Han}替换为\p{East_Asian},命令调整为:

:%s/\(\p{East_Asian}\+\)\s\+\(\w\+\)/\2  \1/g

内容的提问来源于stack exchange,提问作者ITW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 10:50:37