如何在VIM中按字母顺序对方法进行排序?

时间:2012-01-30 13:14:07

标签: vim

class MyClass

  def zzz
    # method body
  end

  def aaa
    # method body
  end

end

我如何让VIM按字母顺序组织这些,以便aaa的定义先于zzz的定义?

1 个答案:

答案 0 :(得分:4)

你可以设置代码折叠,例如通过缩进,关闭那些函数/ fold,然后用 d d 然后 p 进行操作,但这不是一个大的理想解决方案文件。

这不是一件容易的事。您可以设置一些换行符,例如:

  1. 在每个第一级def之前添加一些特定的注释/标识符,例如

    # DEFINITION

    def zzz

    ...

    end

    # END DEF

  2. 然后使用一些占位符将这些行连接成一个带有多线正则表达式魔法(和/或列编辑)的行,这些占位符通常不会出现在您的代码中。

  3. 然后通过标准的unix排序对其进行排序(例如,直观地选择你的连接线,然后

    :'<,'>!sort

  4. 然后拆分插入的模式...

  5. 仍然不太理想,但可以做到......

    请参阅this answer too