基于给定列的vim排序

基于给定列的vim排序,vim,yaml,Vim,Yaml,假设我的yaml文件中有这个部分 hdkkhj50599: 1000000 504sdaaf54: 00000054 pppppp: 00005464 我想根据冒号后的值对这些行进行排序 中建议的解决方案都不适合我 如何操作?如果您在linux上,可以在vim中尝试以下操作(将调用外部排序命令) 显然,您可以将%替换为行范围的定义,例如:对于第5行到第10行,您可以: :5,10!sort -g 使用vim排序命令: :排序/^.\{-}:// 您可以使用linux命令对它们进行

假设我的yaml文件中有这个部分

hdkkhj50599: 1000000  
504sdaaf54: 00000054  
pppppp: 00005464
我想根据冒号后的值对这些行进行排序

中建议的解决方案都不适合我


如何操作?

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

显然,您可以将%替换为行范围的定义,例如:对于第5行到第10行,您可以:

:5,10!sort -g

使用vim排序命令:

  • :排序/^.\{-}://
您可以使用linux命令对它们进行排序:

  • :%!排序-t:-k2


有关更多信息,请参见
:help sort

Vim的内部
:sort
提供了所需的选项:
n
标志用于对十进制数字进行排序(而不是按字母顺序,尽管在0填充的示例中这并不重要),在开头跳过
/…/
模式;我们不贪婪地匹配第一个冒号和空格:

:sort n/.\{-}: /
:sort n/.\{-}: /