2012-01-30 109 views
4
class MyClass 

    def zzz 
    # method body 
    end 

    def aaa 
    # method body 
    end 

end 

我該如何讓VIM按照字母順序來組織這些,使得aaa的定義先於zzz的定義?如何在VIM中按字母順序排列方法?

+0

[VIM:按功能名稱排序](http://stackoverflow.com/questions/5618607/vim-sort-by-function-name) – 2012-01-30 13:42:15

回答

4

那麼你可以設置代碼摺疊例如通過縮進,並關閉這些功能/摺疊,然後用dd然後p做手工但是這對於大文件來說並不是理想的解決方案。

這不是一件容易的事。您可以設置一些線連接,如:

  1. 把一些具體的意見/識別每一級def之前,像

    # DEFINITION

    def zzz

    ...

    end

    # END DEF

  2. 然後加入那些線成一個與一些多正則表達式魔法(和/或列的編輯),使用其通常不會在代碼發生一些佔位符。

  3. 然後通過標準UNIX排序排序它(例如在視覺上選擇接合線,然後

    :'<,'>!sort

  4. 然後在插入的圖案分裂...

仍小於理想的,但它可以做...

請參閱this answer too

+0

的可能重複感謝您鏈接到我的答案,還+1使用摺疊的想法。 – Benoit 2012-01-30 16:28:44

+0

我只是在撰寫答案,然後我意識到它一定是被問到的...... – 2012-01-30 21:44:25