Множественный выбор в Visual Studio?


88

Есть ли способ выделить несколько несмежных (полностью отдельных) текстов в VS? Я могу сделать это в MS Word, выделив тексты отдельно, удерживая кнопку Ctrl, например:

введите описание изображения здесь

Моя версия 11.

Изменить: я не говорю о Alt+Selectвыборе блока. Также я хотел бы увидеть, существует ли метод в Notepad ++.


1
Вы спрашиваете о Visual Studio 2012 или Notepad ++?
Oded

@Oded Я думал, что очевидно, что вопрос касается VS (тоже включенного в заголовок). Дело в Notepad ++ было бонусным вопросом.
nawfal

2
Насколько я знаю, ни в одном из них это невозможно.
Oded


В зависимости от того, что вы хотите сделать с выделением, вы можете получить конечный результат с помощью регулярного или строкового поиска.
MA

Ответы:


88

Редактирование с несколькими курсорами изначально поддерживается в Visual Studio, начиная с версии 2017, обновление 8. Ниже приводится выдержка из документации :

  • Ctrl+ Alt+ щелчок: добавить дополнительный курсор
  • Ctrl+ Alt+ двойной щелчок: добавление вторичного выделения слова
  • Ctrl+ Alt+ щелчок + перетаскивание: добавить вторичный выбор
  • Shift+ Alt+ .: Добавить следующий совпадающий текст как выделенный
  • Shift+ Alt+ ;: Добавить весь совпадающий текст как выделение
  • Shift+ Alt+ ,: Удалить последнее выбранное вхождение
  • Shift+ Alt+ /: Пропустить следующее совпадение
  • Alt + щелкните: Добавить поле выбора
  • Esc или щелкните: Очистить все выборы

Некоторые из этих команд также доступны в Editменю:

Меню с несколькими картами


1
Я не вижу этих вариантов в версии
15.9.3

Похоже, что в 15.9.3 команды в меню - это только первые две.
Gian Marco

2
Обновленная ссылка: docs.microsoft.com/en-us/visualstudio/ide/…
brownmagik352,

2
Интересно, собираются ли они когда-нибудь сделать правильную поддержку нескольких кареток, как JetBrains уже много лет делает. Попробуйте сделать пару вставок, выберите слово, а затем скопируйте и вставьте его. VS вставляет двойные (то есть вставляет весь выделенный фрагмент, сделанный с обоими каретками для каждого каретки. Я не могу представить, когда это когда-нибудь станет желательным поведением. Они должны вставить его только один раз. Кроме того, в JetBrains есть сочетание клавиш CTRL + CTRL, которое позволяет добавлять символы вставки при нажатии стрелок вниз или вверх (бесконечно, пока нажата CTRL). На данный момент это намного продуктивнее, чем реализация
VS.

@obe или как возвышенное. То, как он сейчас поддерживается, мне не нужно.
шашват

54

Существует новое расширение для Visual Studio 2017 под названием SelectNextOccurrence, которое является бесплатным и имеет открытый исходный код.

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

Стремится воспроизвести команду Ctrl + D Sublime Text для более быстрого кодирования.

Особенности:

  • Выбрать следующее вхождение текущего выделения.
  • Пропустить появление
  • Отменить появление
  • Добавить каретку выше / ниже
  • Используйте несколько кареток для редактирования ( Alt-щелкните, чтобы добавить каретку)

Команды Visual Studio:

  • SelectNextOccurrence.SelectNextOccurrenceпо умолчанию привязан к Ctrl+ D.
  • SelectNextOccurrence.SkipOccurrenceпо умолчанию не привязан. (Рекомендуется Ctrl+ K, Ctrl+ D)
  • SelectNextOccurrence.UndoOccurrenceпо умолчанию не привязан. (Рекомендуется Ctrl+ U)
  • SelectNextOccurrence.AddCaretAboveпо умолчанию не привязан. (Рекомендуется Ctrl+ Alt+ Up)
  • SelectNextOccurrence.AddCaretBelowпо умолчанию не привязан. (Рекомендуется Ctrl+ Alt+ Down)

SelectNextOccurrence варианты

https://marketplace.visualstudio.com/items?itemName=thomaswelen.SelectNextOccurrence

https://github.com/2mas/SelectNextOccurrence


1
Отлично! Это тот самый. Множественный выбор и каретка работают очень хорошо. Протестировано с помощью VS Community 2017.
Дэйв,

1
@Dave да, это отличное расширение. Подумайте о том, чтобы дать ему хороший обзор и / или отметить проект GitHub в главной роли, если вы сочтете его полезным.
Дрю Ноукс

Спасибо, что нашли это расширение! MixEdit работал, но не был оптимизирован для VS2017, и всплывающее окно с пробной версией было антипродуктивным.
Билл Н.

У меня не получилось. хорошо, я не знаю, чего я ожидал от ms.
Bersan

Отличное решение, просто чтобы отметить, мне также пришлось удалить привязки клавиш по умолчанию, Edit.Duplicateпоскольку они все еще соблюдались даже при добавлении Ctrl+Dпривязки клавиш для SelectNextOccurrence. Ярлыки по умолчанию для VS 2019: docs.microsoft.com/en-us/visualstudio/ide/…
Брэндон Франклин,

30

В Visual Studio Shift+Alt+. / Shift+Alt+,

  • Shift+Alt+. - сопоставить курсор;
  • Shift+Alt+, - удалить предыдущую вставку;

Та же функция, что и на VSCode Ctrl+D.

Намного больше настроек Tool - Options - Environment - keyboard. Далее в Show commands containingвводе Edit..

Также можно использовать схему клавиатуры Visual Studio Code. Доступно для Visual Studio 2017

В заключение приятная ссылка Visual Studio Все сочетания клавиш


1
Спасибо за ответ, добрый пользователь интернета.
Urasquirrel

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

22

Расширение MixEdit для Visual Studio позволяет выполнять одновременное редактирование так, как вы описываете. Он поддерживает несколько вставок и множественный выбор.


8
Если вы ищете что-то вроде Sublime text, то вот оно!
Kenial

2
Если кому-то интересно, способ добиться множественного выбора в MixEdit - это дважды щелкнуть по словам после нажатия Alt. То же, что и в MS Word, только Altздесь вместо Ctrl. MixEdit также имеет много других полезных опций множественного выбора. Имейте в виду, что это бесплатно только для ознакомления!
nawfal 05

2
Я больше не могу приобрести лицензию MixEdit. Проверьте сайт . Есть идеи, как я могу как-то лицензировать это и избавиться от надоедливого всплывающего окна?
vullnetyy 02

3
это расширение не бесплатное !!
Diogo Cid

6
есть ли альтернативы, которые бесплатны или с возможностью покупки, чтобы вам не приходилось получать это раздражающее предупреждение? или возможность удалить его из MixEdit, если нет возможности купить
Sonic Soul


13

В Visual Studio 2019 вы можете поместить курсор в нужное место, а затем нажать SHIFT ALT и. (точка). Это выберет следующее вхождение.


7

Просто отметить,

MixEdit не является полностью бесплатным.

«Это программное обеспечение в настоящее время не лицензировано ни для одного пользователя и работает в ознакомительном режиме. MIXEDIT можно загрузить и оценить бесплатно, однако для дальнейшего использования необходимо приобрести лицензию».

После установки и использования всплывающее окно перенаправляет на веб-страницу - аналогично всплывающему сообщению нелицензионного программного обеспечения SublimeText.


1
а теперь его даже не купишь. просто появляется окно с предупреждением о лицензии
Sonic Soul

6

Для кода Visual Studio

Получил этот вопрос, потому что я искал способ выбрать несколько слов щелчком мыши на VS Code, что должно быть достигнуто с помощью alt+click, но эта привязка клавиш не работала (я думаю, что это что-то связано с моей ОС, Ubuntu ).

Если вы ищете что-то подобное, попробуйте сменить ключ на ctrl+click.

Перейти к Selection>Switch to Ctrl+Click for Multi Cursor


Вы уверены, что не говорите о VS Code?
nawfal

Да, я ... Удалить его или просто заголовок как "для vs code"? Я искал код, когда приехал сюда
jpenna

2
удалять не нужно, другим будет полезно. Просто укажите это в ответе.
nawfal

6

Обновление: расширение MixEdit теперь предоставляет эту возможность.

Расширение MultiEdit для VS позволяет делать нечто подобное (на момент написания этой статьи не поддерживает множественный выбор, только несколько вставок)

Посетите Hanselman's, чтобы получить быстрый анимированный gif об этом в действии: одновременное редактирование для Visual Studio с бесплатным расширением MultiEdit


1
Это расширение не поддерживает множественный выбор, как указано в исходном вопросе. Расширение MixEdit делает.
mcw

2
MixEdit не существовало, когда ОП опубликовал свой вопрос. Я ответил насколько мне известно.
Mrchief

5

Я не смог найти ничего встроенного, и это печально. Однако в CodeRush есть эта функция .

В Notepad ++ эта функция встроена. Просто включите одновременное редактирование в

Настройка> Предпочтения> Редактирование> Настройки одновременного редактирования

Но это не так интуитивно понятно, как MS Word, который позволяет выбрать два слова двойным щелчком по ним (конечно, после Ctrl).


4

в Visual 2019 откройте параметры, чтобы показать все, введите описание изображения здесь

и множественный выбор: удерживайте, Ctrl + Altзатем щелкните позицию, которую хотите, или, удерживайте, Shift + Altзатем щелкните позицию, чтобы выбрать несколько строк от начала до конца, щелкнули



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.