Многострочное редактирование в коде Visual Studio

581

Можно ли включить многострочное редактирование, как в Sublime Text ?

Например, нажмите, Ctrlчтобы разместить дополнительные курсоры и возможность писать / удалять в нескольких местах документа одновременно.

AfBu
источник
4
Во многих приложениях Mac (например, TextEdit) я также могу перетаскивать мышью Option, чтобы выбрать поле. Это доступно в VS Code?
Саймон Вудсайд
Связанный пост здесь .
RBT
2
С апреля 2018 года (версия 1.23) мы можем использовать среднюю кнопку мыши для выбора нескольких столбцов. code.visualstudio.com/updates/…
blueray
5
Для тех, кто ищет название этой команды в разделе сочетаний клавиш, это:editor.action.insertCursorAtEndOfEachLineSelected
enzoborgfrantz
1
@enzoborgfrantz +1 Именно то, что я искал! Выбранный ответ должен был сначала упомянуть соответствующие команды редактора, потому что сочетания клавиш могут различаться.
Пий

Ответы:

1064

В Windows вы держите Ctrl+ Alt, нажимая клавиши со стрелками вверх или вниз, чтобы добавить курсоры.

Mac: ⌥ Opt+ ⌘ Cmd+ /

Linux: Shift+ Alt+ /

Обратите внимание, что сторонние программы могут мешать этим ярлыкам, мешая им работать должным образом (в частности, программное обеспечение Intel HD Graphics для Windows; подробности см. В комментариях).

Если у вас возникла эта проблема, вы можете либо отключить горячие клавиши Intel / другого программного обеспечения, либо изменить ярлыки кода VS (описанные ниже).

Нажмите, Escчтобы сбросить до одного курсора.

Многострочные курсоры в коде Visual Studio

Или, как указывает Исидор Николич , вы можете удерживать Altи щелкать левой кнопкой мыши, чтобы произвольно размещать курсоры.

Произвольно размещенные многострочные курсоры в коде Visual Studio

Вы можете просматривать и редактировать сочетания клавиш с помощью:

Файл → Настройки → Сочетания клавиш

Документация:

https://code.visualstudio.com/docs/customization/keybindings

Официальные коды быстрого доступа VS Code Keyboard:

https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf
https://code.visualstudio.com/shortcuts/ клавиатура-ярлыков-linux.pdf

Nacimota
источник
155
В Windows первый вариант просто переворачивает мой экран. : - /
Кристоффер ла Кур
26
Это больше не действует. Попробуйте CTRL + SHIFT + UP/DOWN/CLICKИЛИALT + SHIFT + UP/DOWN/CLICK
Хань,
39
@Nacimota - на компьютере с Windows 10 (только что протестирован) комбинация CTRL + ALT + СТРЕЛКА перевернет экран, CTRL + ALT + SHIFT + СТРЕЛКА создаст новый курсор. Опубликованный список сочетаний клавиш PDF может быть устаревшим.
Алекс
11
@AlexC ярлыки не устарели; скачайте последнюю сборку и посмотрите на конфигурацию самостоятельно. Если вы обнаружите, что перечисленные ярлыки переворачивают ваш экран, я бы поспорил, потому что у вас есть графический процессор Intel, и вы используете для него программное обеспечение Intel, которое по умолчанию перехватывает эти ярлыки. Откройте программное обеспечение HD Graphics и отключите или переподключите горячие клавиши, если это вас беспокоит, но не редактируйте мой пост, чтобы добавить неверную информацию . Перечисленные ярлыки являются точными, и я не собираюсь перечислять каждую часть программного обеспечения сторонних производителей, которая может или не может мешать им.
Nacimota
6
@ Nacimota при всем уважении, это была честная ошибка, которая представляет реальность для значительной части пользователей. Существует достаточно машин Intel, где это может быть конфигурация по умолчанию, чтобы дополнительная информация была полезной. Мы оба стремимся предоставить лучший и самый актуальный ответ. Дополнительное предложение перечислить эту разницу было бы полезно.
Алекс C
137

Решено с помощью всего двух шагов!

  1. Ctrl + F

  2. Alt + Enter

Это равно Alt+ Sublime Text + F3.

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

Питер Мортенсен
источник
21
Тот же эффект дает удар по Ctrl + F2
ксопила
2
Можем ли мы выбрать все строки за раз, содержащие это ключевое слово? У возвышенного текста было это Ctrl + F> Alt + F3> Ctrl + L
Anirban
Что это в терминах Mac? Ctrl и Alt заменены на ...?
OldPeculier
67

Вы можете просто Altнажать + для дополнительных курсоров. И , как уже упоминалось, Ctrl+ Alt+ или .

Исидор Николич
источник
9
И вы можете использовать Alt + Shift + щелчок, чтобы выбрать две строки и каждую строку между ними.
Стивен Лиекенс
6
Вопрос в том, как отредактировать Alt + Click
привязку
Alt + click автоматически определяет слово или перемещается влево от слова и не работает для меня.
Jbodily
Нашел ответ на мой вопрос, это может быть либо Alt (по умолчанию , либо Ctrl / ⌘ . Эту опцию можно изменить с помощью "editor.multiCursorModifier": "ctrlCmd"клавиши settings.json.
Дэвид Рефуа
62

Выбор коробки

Windows: shift+ alt+Mouse Left Button

macOS: shift+ option+Click

Это противоречит тому, что упомянуто в ответе. Есть ли в Visual Studio Code поле выбора / многострочное редактирование? ,

Питер Мортенсен
источник
Я не фанат Shift + Alt + Click (хотя это работает). Поэтому, чтобы заставить его работать (в Windows) так же, как в VS, я сделал это: зашел в меню «Выделение» и выбрал «Переключить на Alt» + «Клик» для Multi-Cursor. Теперь Alt + Click делает выбор поля.
Кон
27

Используйте Ctrl+, Dчтобы использовать многословное редактирование одних и тех же слов в Windows и Linux.

Используйте CMD+ Dдля Mac.

Кришнарадж Р
источник
Как сказал @Krishnaraj, Ctrl + D работает. На самом деле, и VSCode, и Sublime поддерживают это. Убедитесь, что применили Ctrl + D ко всем последующим вхождениям, не отпуская Ctrl. Да, вам все еще нужно выбрать вручную, это просто поможет вам освободить вашу мышь. MacOS Command + D
Оскар Чжан
22

Начиная с версии 1.13 (май 2017 г.), вы, наконец, можете изменить клавишу-модификатор по умолчанию для создания нескольких курсоров (добавить в настройки):

"editor.multiCursorModifier": "ctrlCmd"

PS: модификатор "перейти по ссылке" с этого момента будет Alt.

Alex
источник
Многие из этих других ответов не касаются вопроса. Этот - как разместить дополнительные каретки с помощью щелчков мышью.
Александр Недзиолко
17

На Mac это:

Option+ Commandпри нажатии клавиш со стрелками вверх или вниз .

kiewic
источник
16

Я хотел выделить несколько строк и нажать «что-то», чтобы иметь курсор для каждой выбранной строки (аналогично Ctrl+ Shift+ Lв Sublime Text). Это действие в коде Visual Studio называется «Добавить курсоры в конец строки».

Это было проверено в Visual Studio Code 1.22 и работает как на Windows, так и на Mac .

Вот путь:

  1. Выберите линии, которые вы хотите иметь несколько курсоров.
  2. Просто нажмите Alt+ Shift- I.

Теперь у вас есть один курсор на выбранную строку.

Maxime
источник
1
@Manza В VS Code, вы это ALT-SHIFT-I(как iнет L). Шрифт не помогает правильно видеть. Я использую эту команду несколько раз в день как для Mac, так и для Windows, и просто еще раз протестировал ее с последней версией VS Code: 1.24.1, и я уверяю вас, что она работает. Может быть, у вас есть плагин, вызывающий конфликт?
Максим
вау да, это делает трюк, спасибо большое, я все еще переключался между возвышенным из-за этой функции, это так удобно
Манза
для меня это CTRL-SHIFT-L (windows)
образец
14

Я использую расширение vscodevim , поэтому я не уверен, является ли это распространенной проблемой. Но у меня была проблема, когда Ctrl+ Alt+ UpArrowпереворачивал мой экран вверх ногами.

Глядя на основы кода Visual Studio (я не знаю, изменили ли они это в недавнем обновлении), он говорит:

Ctrl+ Alt+ Shift+ ( Up/ down)

Эндрю
источник
1
Ctrl + Alt + [Стрелка] - это обычное сочетание клавиш для поворота экрана, конечно же, с графическими драйверами Intel и / или связанным программным обеспечением. Я полагаю, что это было перехвачено до того, как VSCode заглянул. Недавно (и досадно, так как я использовал его) ротация, кажется, была прекращена в обновлении программного обеспечения Intel и теперь доступна только через длинные меню в винде. Поэтому сочетание клавиш должно работать в VSCode с более свежими драйверами.
Боб
9

Шаг 1:

выберите слово для замены


Шаг 2:

Ctrl+ Fэто выберет его несколько вхождений


Шаг 3:

Alt + Enterэто установит курсор на все найденные случаи


Шаг 4:

Просто начните вводить новое слово


Вирадж Сингх
источник
6
Также cmd+shift+Lна Mac. Делает то же самое за один шаг.
Андрес
2
@Andres Спасибо! Это решило мою проблему в Windows, другие решения перевернули мой экран.
Тарик Ачиалиогуллари
8

По состоянию на апрель 2018 года (версия 1.23) теперь вы также можете использовать среднюю кнопку мыши для многострочного выбора / выбора блока.

Jemmeh
источник
Спасибо за это, это экономит время, есть ли опция для клавиатуры? как выделить, а затем Ctrl + L в возвышенном?
Манза
Это немного другая функция, но вы, вероятно, ищете Ctrl + I. code.visualstudio.com/docs/getstarted/keybindings
Jemmeh
8

В последнем выпуске кода Visual Studio теперь вы можете перетаскивать курсор, удерживая Option(Alt в Windows), чтобы выбрать один и тот же столбец в нескольких строках.

Чтобы включить это, убедитесь, что вы изменили свой editor.multiCursorModifierвид так:

"editor.multiCursorModifier": "ctrlCmd"

Из заметок о выпуске кода Visual Studio 1.32.0:

В следующем видео выбор начинается как обычный выбор, а затем нажимается и удерживается Alt, пока кнопка мыши не будет отпущена:

Пример улучшенного выбора столбца:

Тайлер Бекс
источник
6

В Windows у меня работают следующие комбинации:

  • Ctrl+ Shift+ Alt+down arrow
  • Ctrl+ Shift+ Alt+up arrow
Dnyneshwar
источник
Это похоже на Visual Studio!
GaTechThomas
4

Я думаю, что это зависит от вашей версии кода Visual Studio.

Моя версия для Linux - Visual Studio Code 1.7.2.

                                     "when": "editorTextFocus" },
{ "key": "shift+alt+up",          "command": "editor.action.insertCursorAbove",
                                     "when": "editorTextFocus" },
{ "key": "ctrl+shift+down",       "command": "editor.action.insertCursorBelow",
                                     "when": "editorTextFocus" },
{ "key": "shift+alt+down",        "command": "editor.action.insertCursorBelow",
                                     "when": "editorTextFocus" }```

The point is the shortcuts are not same in all machines, so you should check your configuration. Go to menu:

> Menu *File* → *Preferences* → *Keyboard Shortcuts*

Search for `editor.action.insertCursorAbove` and `editor.action.insertCursorBelow` and see your current configurations. You may change them if they conflict with operating system's shortcut keys.



Хан
источник
Добавление SHIFT + ALT + UP / DOWN к моим пользовательским настройкам работало в Windows 10
SteveC
4

В Visual Studio Code просто нажмите Altи поместите курсор в место редактирования (где вы хотите редактировать) и щелкните правой кнопкой мыши, чтобы выбрать.

Робин
источник
2
Этот ответ кажется неполным
Spangen
4

Рабочим решением для меня было сначала выбрать необходимый текст для редактирования, а затем с помощью CTRL+ F2выбрать все подходящие данные на странице. Вы также можете использовать CTRL+ Shift+, Lкак предложено @lesterCovax

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

Для меня выше решения Ctrl+ ALT+ Arrowkeysне работает , поскольку это привело к экрану , чтобы изменить ориентацию экрана на выбор строки в VSCode.

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

РИЧАРД АБРАХАМ
источник
3

В дополнение ко всем ответам есть еще один способ. Выберите нужные строки и нажмите:

  • Windows: Shift+ Alt+i
  • Mac: shift+ option+i

Это помещает курсор в каждую строку в выделении.

Пулькит Агарвал
источник
Это работает отлично! спасибо
Мигель Стивенс
2

Если вы используете Linux, существует вероятность конфликта с Alt+ click , который используется по умолчанию для «перемещения окна».

Вы можете перейти в меню НастройкиОкно ПоведениеОкно поведенияДействия вкладки

Просто удалите Alt+ left(удерживайте), и это будет работать.

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

Марсело Агимовель
источник
2

Я использую Sublime Text раскладку и связывание клавиш, представленное в верхнем ответе, похоже, не работает :( Могут быть некоторые конфликты между кодом Visual Studio и подсвеченными раскладками клавиш.

Связывание клавиш, рекомендованное @Han, работает для меня (высоко ценится!):

  • Войдите в режим многострочного курсора с помощью Ctrl+ Shift+ Up/Down
  • Выход с Esc

(Sidenote) Ниже приведен небольшой пример использования Emmet вместе с многострочным курсором (включается и отключается с помощью этих назначений клавиш, перечисленных выше):

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

Шань Доу
источник
2

версия 1.43 (февраль 2020 г.)

Теперь вы можете переключать режим выбора столбцов, который меняет жесты мыши и клавиши со стрелками, с помощью:

  • Строка меню> Выбор> Режим выбора столбца
  • Ctrl+ Shift+ P(Показать все команды)> Переключить режим выбора столбца
  • Привязать свой ключ для команды "editor.action.toggleColumnSelection"

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

Примечание. После активации в панели состояния появляется панель «Выбор столбца», которую можно нажать, чтобы снова отключить.

ford04
источник
1

Мои настройки: Windows 8.1 64 бит, Visual Studio Code версии 1.33.1.

Проблема: конфликт с сочетаниями клавиш Intel HD Graphics 4000

У меня была проблема, когда я использовал стандартные ярлыки кода Visual Studio ( Ctrl+ Alt+ UP, Ctrl+ Alt+ DOWN). В моем случае эти команды поворачивали мой экран на 0º и 180º соответственно. Это происходит потому, что на моем компьютере установлено приложение Graphic Intel. Затем я просто отключить ярлыки этого приложения.

Вот учебник, чтобы помочь кому-то.

Руи М.
источник
1
В Windows 7 вы можете щелкнуть правой кнопкой мыши на рабочем столе, выбрать параметры графики -> горячие клавиши -> отключить.
Мориц
0

Просто Opt+ клик работает для меня на Mac

новичок
источник
0

Решение от @maxime с использованием SHIFT + ALT + iработал для меня, когда мне нужно быстро исправить ~ 20k строк в файле. Большинство других упомянутых сочетаний клавиш полезны только для ограниченного числа строк. SHIFTВыделите область, которую вы хотите редактировать, затем SHIFT + ALT + iнаиболее эффективный способ - нажать .

Однако я случайно обнаружил (и пока не упоминал здесь), что в «режиме редактирования курсора» существует ограничение в 10 тыс. Строк (есть открытый запрос функции Github для его увеличения). Это означает, что для очень больших файлов может быть лучше написать ваши правки, чем делать это вручную.

Для таких как @specimen, которые должны были использовать ярлыки, такие как CTRL + SHIFT + L(по умолчанию привязка Select all occurrences of current selection), вы должны убедиться, что у вас не установлено расширение таблицы ключей . Вы можете проверить, выполнив поиск @recommended:keymapsв панели расширений, перейдя к File > Preferences > Keymaps( CTRL+K CTRL+M).

Таблицу ключей [Windows] по умолчанию можно найти в формате PDF ЗДЕСЬ , или вы можете перейти File > Preferences > Keyboard Shortcutsк поиску / изменению текущих привязок. Более подробную документацию по связыванию клавиш можно найти ЗДЕСЬ .

LesterCovax
источник
0

В Linux Fedora (я пробовал с Fedora 31) с KDE, перейдите по ссылке:

  1. Настройки системы
  2. Управление окнами
  3. Поведение окна
  4. Окно Действия
  5. Внутреннее окно, заголовок и рамка
  6. Щелкните левой кнопкой мыши
  7. Выбрать Ничего (замена перемещения / перетаскивания)

Теперь вы можете выбрать несколько строк с помощью Alt + левый клик !

kintsukuroi
источник