5

最近、vim で C# コードを編集しています。また、ビルド システムでは StyleCop が有効になっているため、すべてのusingステートメントをアルファベット順に並べることができます。

そこで、ビジュアルモードで以下のコード行を選択して、「:sort」と入力してみました。

using System.Security.Permissions;
using System.Runtime.Serialization;
using System.Security;
using System.ServiceModel;

結果は次のとおりです。

using System.Runtime.Serialization;
using System.Security.Permissions;
using System.Security;
using System.ServiceModel;

「System.Security」が「System.Security.Permissions」より進んでいないため、StyleCop チェックに合格しません。「;」の ASCII 値 "." の ASCII 値より大きいです。

好ましい結果は次のとおりです。

using System.Runtime.Serialization;
using System.Security;
using System.Security.Permissions;
using System.ServiceModel;

それを達成する方法は?

4

4 に答える 4

7

:h :sortあなたの友達です:

:[range]sort r /[^;]*/

途中で重複を削除したい場合は、u niq フラグを追加します。

:[range]sort ur /[^;]*/

(「;」の後に別のコメントがある場合、これは何の役にも立たない)

于 2009-12-09T12:52:37.280 に答える
1
:1,4s/;$//
:sort
:1,4s/$/;/

(ここで、1,4 は using ステートメントを含む行です)

于 2009-12-09T10:16:55.613 に答える
0

C以外のローカル(テスト済みのfr_FR、fr_FR.UTF-8、en_US、en_GB)を使用するLinuxボックスでは、sortコマンドは期待どおりにソートされます。あなたは非常にうまくsortコマンドにパイプすることができます:

:1,4!sort

Windowsを使用している場合は、vimのsortコマンドがロケールを処理していないように見えるため、このジョブを実行できるUNIXツール(SFUなど)をインストールできると思います。

于 2009-12-09T11:58:53.670 に答える
0

CodeRush または ReSharper を使用しないことは、雇用主から盗んでいることです

<ducks for downvotes>

(はい、VSが必要であることは知っています(そして、AFAIK VS10にはこのOOTBがあります))

于 2009-12-09T10:15:31.637 に答える