Baru-baru ini saya mengedit kode C # di vim. Dan sistem build telah mengaktifkan StyleCop sehingga semuanya menggunakan pernyataan harus dalam urutan abjad.
Jadi, saya mencoba memilih baris kode di bawah dalam mode visual, lalu ketik ": sort".
using System.Security.Permissions;
using System.Runtime.Serialization;
using System.Security;
using System.ServiceModel;
Hasilnya adalah:
using System.Runtime.Serialization;
using System.Security.Permissions;
using System.Security;
using System.ServiceModel;
Ini tidak lulus pemeriksaan StyleCop karena "System.Security" tidak di depan "System.Security.Permissions". Nilai ASCII ";" lebih besar dari nilai ASCII ".".
Hasil yang disukai adalah:
using System.Runtime.Serialization;
using System.Security;
using System.Security.Permissions;
using System.ServiceModel;
Bagaimana cara mencapainya?
:h :sort
adalah temanmu:
:[range]sort r /[^;]*/
Jika sepanjang jalan Anda ingin menghapus duplikat, tambahkan kamubendera niq:
:[range]sort ur /[^;]*/
(Ini tidak akan ada gunanya jika Anda memiliki komentar yang berbeda setelah ';' meskipun)
:1,4s/;$//
:sort
:1,4s/$/;/
(di mana 1,4 adalah garis dengan menggunakan pernyataan)
Tidak menggunakan CodeRush atau ReSharper mencuri dari atasan Anda
<ducks for downvotes>
(Ya, saya tahu itu membutuhkan VS (dan AFAIK VS10 memiliki OOTB ini))
Pada kotak linux saya dengan lokal selain C (diuji fr_FR, fr_FR.UTF-8, en_US, en_GB), jenis perintah semacam yang Anda harapkan. Anda bisa dengan sangat baik menyambungkan ke perintah pengurutan:
:1,4!sort
Jika Anda berada di windows, saya kira Anda dapat menginstal alat-alat unix (seperti SFU) yang dapat melakukan pekerjaan karena perintah semacam vim tampaknya tidak menangani lokal.