Как сортировать с помощью оператора кода C# в vim?
Недавно я редактировал код C# в vim. А в системе сборки включен StyleCop, так что все, использующие оператор , должны располагаться в алфавитном порядке.
Итак, я попытался выбрать нижеприведенные строки кода в визуальном режиме, затем введите ": 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;
Он не проходит проверку StyleCop, потому что " система.Безопасность "не опережает" систему.Безопасность.Разрешения". Значение ASCII"; " больше, чем значение ASCII ".".
Предпочтительный результат это:
using System.Runtime.Serialization;
using System.Security;
using System.Security.Permissions;
using System.ServiceModel;
Как этого добиться?
4 ответа:
:h :sort
Ваш друг::[range]sort r /[^;]*/
Если по пути вы хотите удалить дубликаты, добавьте флагu niq:
:[range]sort ur /[^;]*/
(это не принесет никакой пользы, если у вас есть разные комментарии после"; " хотя)
Не использовать CodeRush или ReSharper-это кража у вашего работодателя
<ducks for downvotes>
(Да, я знаю, что требуется VS (и AFAIK VS10 имеет этот OOTB))
На моем Linux box с локальным, отличным от C (проверено fr_FR, fr_FR.UTF-8, en_US, en_GB), команда сортировки сортирует, как вы ожидаете. Вы можете очень хорошо передать команду сортировки:
:1,4!sort
Если вы работаете в windows, я полагаю, что вы можете установить инструменты unix (например, SFU), которые могли бы выполнить эту работу, поскольку команда сортировки vim, похоже, не обрабатывает языковой стандарт.