gpt4 book ai didi

regex - 如何按长度对一系列行进行排序?

转载 作者:行者123 更新时间:2023-12-03 09:09:40 25 4
gpt4 key购买 nike

很多时候我只想整理我所有的#include的长度在我的源文件和头文件的顶部。
vim允许我以类似的方式按字母数字排序 :{range} sort u .

vim ,如何按行的长度对一系列行进行排序?这样较短的行后面跟着较长的行。

在互联网上搜索,我发现了这个:

:% s/.*/\=printf("%03d", len(submatch(0)))."|".submatch(0)/ | sor n | %s/..../

但这只能对整个文件进行排序,无论如何对我来说都是黑魔法。我试图弄清楚如何使用范围(例如从第 4 行到第 18 行)进行相同的排序,如 :4,18 s/...你有什么想法?

最佳答案

使用 awk 过滤视觉选择

在 vim 中执行此操作的一种方法是在排序之前使用 awk 的 length() 函数过滤视觉选择。例如:

:'<,'> ! awk '{ print length(), $0 | "sort -n | cut -d\\  -f2-" }'

关于regex - 如何按长度对一系列行进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11531073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com