基于给定列的vim排序

时间:2017-01-25 11:22:09

标签: vim yaml

假设我的yaml文件中有此部分

hdkkhj50599: 1000000  
504sdaaf54: 00000054  
pppppp: 00005464

我想根据冒号后的值对这些行进行排序。

stackoverflow中没有一个建议的解决方案适合我。

我该怎么做?

3 个答案:

答案 0 :(得分:6)

Vim的内部:sort提供了你想要的选项:n标志用于排序十进制数字(而不是按字母顺序排列,尽管在你的0填充示例中无关紧要),{开头跳过{1}}模式;我们非贪婪地匹配第一个冒号和空格:

/.../

答案 1 :(得分:1)

使用vim排序命令:

  • :sort /^.\{-}:/

您可以使用linux命令对其进行排序:

  • :%!sort -t: -k2

有关详情,请参阅:help sort

答案 2 :(得分:0)

如果您使用的是Linux,可以在vim中尝试以下操作(将调用外部排序命令)

:%!sort -g

显然你可以用你的行范围的定义替换%,例如:对于第5行到第10行,你会这样做:

:5,10!sort -g