Domanda

Recentemente a modificare il codice C # in vim. E il sistema di generazione ha permesso StyleCop in modo che tutto con dichiarazione dovrebbe essere in ordine alfabetico.

Quindi, ho cercato di selezionare in basso righe di codice in modalità visiva, quindi digitare ": sorta".

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

Il risultato è:

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

E non passa StyleCop controllando perché "System.Security" Non è più avanti di "System.Security.Permissions". Il valore ASCII di ";" è più grande di valore ASCII "".

Il risultato preferito è:

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

Come raggiungerlo?

È stato utile?

Soluzione

:h :sort è tuo amico:

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

Se lungo la strada che si desidera rimuovere i duplicati, aggiungere il u bandiera niq:

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

(Questo non farà nulla di buono se si dispone di diversi commenti dopo il ';' però)

Altri suggerimenti

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

(dove 1,4 sono linee con l'utilizzo di dichiarazioni)

Non utilizzando CodeRush o ReSharper è rubare dal vostro datore di lavoro

<ducks for downvotes>

(Sì, lo so che richiede VS (e per quanto ne so VS10 ha questa OOTB))

sulla mia macchina Linux con un altro locale che C (testato fr_FR, fr_FR.UTF-8, en_US, en_GB), i tipi di comando sorta come previsto. Si potrebbe pipe molto bene al comando sort:

:1,4!sort

Se siete su Windows, suppongo è possibile installare strumenti Unix (come SFU) che potrebbero fare il lavoro dal comando sort di vim non sembra gestire locale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top