Заставить Visual Studio понимать CamelCase при нажатии Ctrl и клавиш курсора

130

Есть ли способ настроить Visual Studio 2008 для понимания CamelCase? В частности, я хотел бы иметь возможность получить Ctrl + rightили leftкурсор, чтобы перейти к подразделу имени переменной или типа.

то есть, если бы мой курсор был в начале этой строки:

LongNamedExampleClass longNamed = new LongNamedExampleClass();

и я нажимаю Ctrl + right, я бы хотел перейти к " Named" в имени класса, а не к началу имени переменной. Если я ударил его еще раз, я бы хотел перейти к " Example". Я надеюсь, что в этом есть смысл.

Я довольно часто использовал эту навигационную функцию в Eclipse, и мне трудно отучиться от чего-то столь укоренившегося.

serg10
источник
Resharper поддерживает эту функцию.
Петтер Вигл,
Решарпер это делает. Я полагаю, вы могли бы написать собственное дополнение, чтобы сделать то же самое.
открытый воротник,

Ответы:

132

Спасибо тем, кто предложил Решарпера. Это дает мне еще одну причину любить его еще больше. Просто чтобы уточнить, где это живет - JetBrains называет это CamelHumps (милый), и вы можете включить его с помощью меню:

Resharper -> Параметры -> Среда -> Редактор -> Поведение редактора -> Использовать CamelHumps

... в более старых версиях Resharper это так;

Resharper -> Параметры -> Редактор -> Использовать CamelHumps

serg10
источник
2
Есть ли возможность выбрать все слово, даже если CameHumps включен? На данный момент мне нужно несколько раз нажать вправо или влево, чтобы выбрать слово. Надеюсь, ты меня понял.
Ozkan
Чтобы быстро выделить все слово при включенном CamelHumps, дважды нажмите горячую клавишу « Расширить выделение» ( Ctrl+ Alt+ Rightили Ctrl+ W).
Панг
107

Любой, кто наткнется на эту страницу после 25 ноября 2008 г. (кто не хочет платить за ReSharper или CodeRush, у которых больше нет бесплатной версии ), следующее бесплатное расширение добавляет эту функциональность: Subword Navigation by Olle Westman

(В качестве альтернативы расширение VSTricks включает Sub-word Navigation в свой список изящных функций. Существует также другое расширение Subword Navigation, созданное Лаури Васамой, которое не следует путать с Olle Westman, которое используется в этом ответе.)

На странице проекта Subword Navigation указано:

Найдите Edit.Subword в привязках клавиатуры, чтобы настроить вещи.

Вот как я это настроил Visual Studio 2019:


  1. Перейдите в Инструменты> Параметры> Среда> Клавиатура.

  1. Под Use new shortcut inвыберите Текстовый редактор

  1. В полеShow commands containing введите Edit.Subword . Должно появиться поле автозаполнения с перечисленными ниже командами.

  1. Выберите одну из следующих команд, для которой вы хотите настроить сочетания клавиш. После выбора выполните остальные пронумерованные шаги. Затем вернитесь к, Step 4чтобы установить еще один.
    • Edit.SubwordNext
      • Обходит верблюжьи ящики вправо [ Alt + Right Arrow]
    • Edit.SubwordPrevious
      • Обходит верблюжьи ящики влево [ Alt + Left Arrow]                                                             
    • Edit.SubwordNextExtend
      • Выбирает верблюжьи ящики справа [ Alt + Shift + Right Arrow]
    • Edit.SubwordPreviousExtend
      • Выбирает верблюжьи ящики слева [ Alt + Shift + Left Arrow]                                                              
    • Edit.SubwordDeleteNext
      • Удаляет верблюжьи ящики справа [ Alt + Delete]
    • Edit.SubwordDeletePrevious
      • Удаляет верблюжьи ящики слева [ Alt + Backspace]

Примечание. При назначении этих команд навигации по подсловам этим новым сочетаниям клавиш сохраните все уже существующие функциональные возможности сочетаний клавиш, которые вы хотите сохранить заранее, установив их для разных клавиш. Он не должен конфликтовать с установленными по умолчанию сочетаниями клавиш.


  1. Внизу Press shortcut keysнажмите горячие клавиши

  1. Нажмите Assignи перезапишите существующий ярлык
jsea
источник
2
Спасибо, что подняли голову! Это прекрасно работает и является наиболее открытым из представленных решений.
Честер Хаск,
Я имел в виду 2015 год и последующие годы. Как упоминалось позже, я использовал это в VS 2012. Я поясню в этой статье. Спасибо.
jsea 01
2
Особенно отличный ответ в деталях установки. Я определенно ценю объяснение на Next / PreviousExtend
skia.heliou
9
В 2015 году мне пришлось перезаписать команды TextEditor. *, А не команды Global. *. ALT + RIGHT уже был привязан к чему-то другому.
Сет Флауэрс,
2
@yanyankelevich Я только что протестировал его в VS2019, и он работает. Тем не менее, я заметил в диспетчере расширений два расширения под названием «Навигация по подсловам». Вам нужен тот, который создал Олле Вестман. Я обновил свой ответ, чтобы указать это и отметить, что он работает в VS2019.
jsea
22

Если у вас установлен ReSharper, вы также можете настроить сочетания клавиш «Alt-Right» и «Alt-Left» в Visual Studio для CamelHump, не теряя стандартного поведения Visual Studio для «ctrl-right» и «ctrl-left».

  1. Откройте окно параметров Visual Studio из Инструменты -> Параметры.
  2. Разверните « Среда» и прокрутите вниз до « Клавиатура».
  3. В поле « Показать команды, содержащие» введите «горб». Это покажет все команды, связанные с CamelHumps. CamelHumps
  4. Сопоставьте команды нужным вам сопоставлениям клавиш, выбрав команду из списка и введя сопоставление клавиш в текстовое поле « Нажмите сочетания клавиш» , а затем нажмите « Назначить» .

Предостережения:

  • Назначьте сопоставления для текстового редактора , а не для глобального .
  • Убедитесь, что опция Use CamelHumps в Resharper -> Options -> Editor -> Editor Behavior отключена .

Подробности здесь: http://davidrcook.wordpress.com/2009/11/05/working-with-camel-case-in-visual-studio/

keremispirli
источник
4
Вы только что сделали мой день. Идеальным решением в качестве верблюжьих горб может быть такая булавка с длинными идентификаторами (это подтвердит любой, кто использует Eclipse)
Крисб,
8

Он не является встроенным в Visual Studio, но вы можете получить его бесплатно с помощью CodeRush Express . (ReSharper и CodeRush требуют оплаты).

Стюарт Джонсон
источник
В настоящее время бесплатна только пробная
версия
2

Visual Studio не поддерживает такое поведение. Однако CodeRush от DevExpres ! продукт поддерживает такую ​​навигацию (с использованием Alt-Left и Alt-Right), а также множество других функций, помогающих в навигации. CodeRush! продукт также включен в их инструмент Refactor. Они также предлагают бесплатный CodeRush! & Refactor Express, хотя я не уверен, является ли навигация Camel Casing частью экспресс-продукта.

Стив Бруйяр
источник
-1

Я не думаю, что Visual Studio поддерживает эту функцию внутренне, поскольку, похоже, она использует обычный способ работы Ctrl + Right и Ctrl + Left в среде Windows. Но, вероятно, это возможно с помощью какого-то расширения или плагина.

Мехрдад Афшари
источник
6
Предположение о том, смогут ли другие люди ответить на вопрос, на самом деле не является ответом на него.
GregNash