Получение правила SA1503 StyleCop CurlyBracketsMustNotBeOmitted, чтобы быть более гибким

Эта проблема может быть решена с помощью опции keymap. Он позволяет определить альтернативное отображение клавиатуры для использования в режимах, требующих ввода текста.

Для переключения между стандартными и альтернативными таблицами клавиш в режиме вставки, замены или командной строки используйте Ctrl kbd> + ^ kbd> ( Ctrl kbd> + 6 KBD>). Изменение раскладки клавиатуры влияет только на ввод текста; Поведение клавиатуры в обычном режиме остается неизменным независимо от текущей настройки раскладки клавиатуры. Можно оставить запись в режиме вставки на греческом языке и сразу использовать сочетания клавиш в обычном режиме, не переключаясь на другую раскладку клавиатуры. Если после этого вы вернетесь в режим вставки или, например, начнете поиск, набрав /, Vim автоматически переключит раскладку клавиатуры на греческий.

Текущая клавиатура, используемая в этих режимах ввода текста, запоминается между переключениями в другие режимы. Единственное исключение из этого поведения сделано для режима командной строки, который всегда начинается с таблицы ключей по умолчанию, так как большую часть времени требуется вводить команду Ex (в ASCII). С установленной опцией keymap пользователь должен работать в Vim, сохраняя раскладку системной клавиатуры на английском, переключая раскладку клавиатуры Vim с помощью Ctrl kbd> + ^ kbd> (вместо system- широкоформатный переключатель).

Чтобы навсегда включить греческую раскладку UTF-8, добавьте следующую строку в файл .vimrc.

:set keymap=greek_utf-8

Существует множество предопределенных таблиц клавиш для большого набора языков, вы можете просмотреть их все в самом Vim, используя :e $VIMRUNTIME/keymap. Обратите внимание, что обычно для одного языка предусмотрено несколько таблиц ключей, которые отличаются только кодировкой символов, так что любой может выбрать ту, которая соответствует их конфигурации.

Я также рекомендую установить параметры ниже, чтобы указать, должна ли карта ключей включаться по умолчанию в режиме вставки и при вводе шаблона поиска.

:set iminsert=0
:set imsearch=-1

См. :help iminsert и :help imsearch для их подробных объяснений.

Существует также специальный языковой режим, который, если я не ошибаюсь, был введен в Vim раньше, чем keymap. Это позволяет добиться поведения, аналогичного тому, которое предусмотрено в keymap, путем ручного указания пар букв, которые соответствуют клавишам на клавиатуре в длинной строке, которая будет сохранена в опции langmap. Лично - мой родной язык тоже не английский - я предпочитаю (и рекомендую) вместо этого использовать keymap.

В заключение я должен подчеркнуть, что все вышеперечисленное в равной степени применимо к любому другому языку, для которого Vim имеет (или может быть настроен для него) раскладку клавиатуры.

См. Также мой ответ на аналогичный вопрос , который был задан позже. Это включает в себя немного более подробное объяснение.

5
задан Richard Everett 9 June 2009 в 17:27
поделиться

2 ответа

Как уже упоминалось, к сожалению, правила StyleCop либо включены, либо выключены и не могут быть изменены. Было бы неплохо иметь простой способ настройки правил, но, к сожалению, вам придется писать их с нуля.

Я использовал StyleCop, чтобы сосредоточиться на использовании как можно большего количества встроенных правил и где У меня действительно принципиальная проблема с правилом (например, с документацией по коду), я просто отключаю его. Я не настолько озабочен исключениями, чтобы доходить до написания индивидуальных правил.

7
ответ дан 13 December 2019 в 22:14
поделиться

StyleCop (и я с этим согласен) хочет, чтобы вы разбили это на несколько строк. Ему не нравятся операторы if в одной строке по (возможно) уважительной причине - это вызывает непоследовательный шаблон использования операторов if, что является одной из причин, по которым правило существует в первую очередь.

Чтобы получить поведение, которое вы показывает, что вам, вероятно, потребуется использовать SDK, чтобы написать собственное правило для этого конкретного случая, а затем отключить правило по умолчанию.

3
ответ дан 13 December 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: