Emacsでも同じ事ができます。
まずはaprpopse-command
やanything-apropose
でソートコマンドを探してみましょう。M-x anything-apropose
に続けてsort-
を入力するとそれっぽいコマンドが列挙されます。
sort-pages
sort-columns
sort-paragraphs
sort-fields
sort-regexp-fields
sort-numeric-fields
sort-lines
sort-regexp-fields
が利用できそうです。
そのままsort-regexp-fields
を選択するとコマンドの説明が表示されます。
sort-regexp-fields is an interactive compiled Lisp function in
`sort.el'.
(sort-regexp-fields REVERSE RECORD-REGEXP KEY-REGEXP BEG END)
ふむ。。。なにやらよくわかりませんね。。。(汗
Googleでいろいろ検索してみると、引数は次のような意味のようです。
とするとuseやusingをソートするコマンドは次のように定義できそうです。ソート対象の文字列から;
を除くのが肝ですね。
(sort-regexp-fields nil "^.+$" "[^;]+" beg end)
使いやすくするために関数化します。
(defun my-sort-declarations (beg end)
(interactive (list (region-beginning) (region-end)))
(sort-regexp-fields nil "^.+$" "[^;]+" beg end))
さて、昨日のコードに登場してもらいましょう。
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Linq;
リージョンを選択して、M-x my-sort-declarations
を実行してみましょう。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
意図したようにソートできましたね。