Pertanyaan Bagaimana mengurutkan menggunakan pernyataan kode C # di vim?


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?


5
2017-12-09 10:09


asal


Jawaban:


: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)


7
2017-12-09 12:52



:1,4s/;$//
:sort
:1,4s/$/;/

(di mana 1,4 adalah garis dengan menggunakan pernyataan)


1
2017-12-09 10:16



Tidak menggunakan CodeRush atau ReSharper mencuri dari atasan Anda

<ducks for downvotes>

(Ya, saya tahu itu membutuhkan VS (dan AFAIK VS10 memiliki OOTB ini))


0
2017-12-09 10:15



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.


0
2017-12-09 11:58