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

如何在Vim中实现每行内部字符排序而非整行排序?

在Vim中实现每行内部字符排序的方法

完全可以通过Vim本身实现每行内部字符的排序,不需要额外编写Python脚本。以下是具体的实现方案:

按忽略大小写的字母顺序排序(匹配示例需求)

执行以下全局替换命令:

:%s/.*/\=join(sort(split(submatch(0), ''), 'i'), '')/

命令拆解:

  • :%s:对所有行执行替换操作
  • .*:匹配当前行的全部内容
  • \=...:通过Vim表达式计算替换后的内容
    • split(submatch(0), ''):将整行内容拆分为单个字符的列表
    • sort(..., 'i'):对字符列表做忽略大小写的排序,按字母字典序排列,同时保留原字符的大小写格式
    • join(..., ''):将排序后的字符列表重新拼接成字符串

执行该命令后,示例输入:

Each
Ate
Ana

会被处理为:

acEh
Aet
aAn

按ASCII码排序(区分大小写)

如果需要严格按字符的ASCII码值排序(大写字母默认排在小写字母前),可以去掉sort函数的'i'参数:

:%s/.*/\=join(sort(split(submatch(0), '')), '')/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:57:30