Как писать на нескольких строках одновременно в visual studio
Как вы можете создавать несколько курсоров при редактировании в VS Code? Меня интересуют как macOS, так и Windows.
Нажмите Alt и нажмите. Это работает в Windows и Linux *, и должно работать на Mac.
В Visual Studio Code 0.2 теперь доступны дополнительные функции с несколькими курсорами:
Улучшения в мультикурсорах
Ctrl+D ( Cmd+D на Mac) выбирает следующее вхождение слова под курсором или текущего выделения
Ctrl+K Ctrl+D перемещает последний добавленный курсор к следующему вхождению слова под курсором или текущего выбора
Команды используют matchCase по умолчанию. Если виджет поиска открыт, то настройки виджета поиска (matchCase/matchWholeWord) будут использоваться для определения следующего вхождения
Ctrl+U ( Cmd+U на Mac) отменяет последнее действие курсора, поэтому, если вы добавили курсор слишком много или допустили ошибку, вы можете нажать Ctrl+U ( Cmd+U на Mac), чтобы вернуться к предыдущему состоянию курсора, При добавлении курсора вверх или вниз ( Ctrl+Alt+Up / Ctrl+Alt+Down ) ( Cmd+Alt+Up / Cmd+Alt+Down на Mac) теперь отображается последний добавленный курсор, чтобы упростить работу с несколькими курсорами на более чем 1 высоте окна просмотра одновременно ( т.е. выберите 300 строк и только 80 поместится в окне просмотра).
Это значительно упрощает введение нескольких курсоров
* Конфликт перетаскивания в Linux:
Некоторые дистрибутивы (например, Ubuntu) назначают перетаскивание окна на Alt+LeftMouse , что будет конфликтовать с VSCode.
Итак, последние версии VSCode позволяют переключаться между Alt+LeftMouse и Ctrl+LeftMouse в меню выбора, как подробно описано в другом ответе.
Кроме того, вы можете изменить привязки клавиш вашей ОС, используя gsettings , как указано в другом ответе.
Как поставить курсор в нескольких местах visual studio code
Apr 20, 2018 · 2 min read
Множественные курсоры в VS Code
В современных редакторах кода, таких как VS Code, Atom и Sublime Text, можно вводить тест одновременно в нескольких местах при помощи множественных курсоров. Об этой возможности знает любой разработчик, а вот из дизайнеров не знает почти никто.
Добавить несколько курсоров можно несколькими способами:
⌥ + Click — добавит новый курсор в месте клика
⌥ + ⌘ + ↓ — расширит курсор до следующей строки, а ⌥ + ⌘ + ↑ — до предыдущей
⌘ + D — найдёт в тексте следующее вхождение выделенного слова
Вместе с мн о жественными курсорами работают стандартные шорткаты для работы с текстом.
⌘ + ← и ⌘ + → для перемещения курсоров в начало или конец строки.
⌥ + ⇧ + ← и ⌥ + ⇧ + → для выделения следующего или предыдущего слова.
При помощи множественных курсоров можно, например, быстро превратить список коллег в список электронных адресов.
Несколько курсоров в коде Visual Studio
Как вы можете создать несколько курсоров при редактировании в VS Code? Я интересуюсь как macOS, так и Windows.
Обновить
В Visual Studio Code 0.2 теперь доступны дополнительные функции с несколькими курсорами:
Улучшения мульти курсора
Ctrl+D выбирает следующее вхождение слова под курсором или текущего выделения
Ctrl + K Ctrl+D перемещает последний добавленный курсор на следующее вхождение слова под курсором или текущего выделения
Команды используют matchCase по умолчанию. Если виджет поиска открыт, то настройки виджета поиска (matchCase / matchWholeWord) будут использоваться для определения следующего вхождения
Ctrl+U отменяет последнее действие курсора, поэтому, если вы добавили курсор слишком много или допустили ошибку, вы можете нажать Ctrl+U, чтобы вернуться к предыдущему состоянию курсора. При добавлении курсора вверх или вниз ( Ctrl + Alt + Up / Ctrl + Alt + Down ) теперь отображается последний добавленный курсор, чтобы упростить работу с несколькими курсорами на более чем 1 высоте области просмотра за раз (т.е. выберите 300 строк и только 80 помещается в окне просмотра).
Это значительно упрощает введение нескольких курсоров.
Нажмите Alt и нажмите. Работает на Windows и Linux*, должен работать на Mac тоже.
* Некоторые дистрибутивы (например, Ubuntu) назначают перетаскивание окон на Alt + LeftMouse , что будет конфликтовать с VSCode. Вы можете изменить это, используя gsettings как упоминалось в других ответах.
Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост .
Закрыто 2 года назад .
Как вы можете создать несколько курсоров при редактировании в VS Code? Я интересуюсь как macOS, так и Windows.
Кроме того, похоже, что Cmd + Alt + Down отображается по умолчанию в editor.action.goToDeclaration по состоянию на 1.14.2
Жаль, что ребята решили закрыть тему, которая представляет такой очевидный интерес, что у нее почти 400 голосов, а посетители почти через 4 года после публикации. Я бы хотел, чтобы редакторы SO немного расслабились и позволили сообществу расти и поддерживать друг друга. Мне любопытно, какие уместные ответы возникнут со знанием 2019 года. :(
Нажмите Alt и нажмите. Это работает на Windows и Linux *, и должно работать на Mac.
В Visual Studio Code 0.2 теперь доступны дополнительные функции с несколькими курсорами:
Улучшения с несколькими курсорами
Ctrl+D ( Cmd+D на Mac) выбирает следующее вхождение слова под курсором или текущего выделения,
Ctrl+K Ctrl+D перемещает последний добавленный курсор на следующее вхождение слова под курсором или текущего выбора.
По умолчанию команды используют matchCase. Если виджет поиска открыт, то настройки виджета поиска (matchCase / matchWholeWord) будут использоваться для определения следующего вхождения
Ctrl+U ( Cmd+U на Mac), чтобы отменить последнее действие курсора, поэтому, если вы добавили слишком много курсоров или допустили ошибку, вы можете нажмите Ctrl+U ( Cmd+U на Mac), чтобы вернуться к предыдущему состоянию курсора. Добавление курсора вверх или вниз ( Ctrl+Alt+Up / Ctrl+Alt+Down ) ( Cmd+Alt+Up / Cmd+Alt+Down на Mac) теперь показывает последний добавленный курсор, чтобы упростить работу с несколькими курсорами на более чем 1 высоте области просмотра одновременно (т.е. выберите 300 строк и только 80 поместится в область просмотра).
Это значительно упрощает введение нескольких курсоров.
* Конфликт перетаскивания в Linux:
Некоторые дистрибутивы (например, Ubuntu) назначают перетаскивание окна на Alt+LeftMouse , что будет конфликтовать с VSCode.
Итак, последние версии VSCode позволяют переключаться между меню выбора Alt+LeftMouse и Ctrl+LeftMouse под ним, как подробно описано в другом ответе .
Кроме того, вы можете изменить привязки клавиш вашей ОС, используя, gsettings как указано в другом ответе .
Есть ли способ выбрать несколько несмежных (полностью отдельных) текстов в VS? Я могу сделать это в MS Word, выделив тексты отдельно, удерживая кнопку Ctrl, вот так:
Изменить: я не говорю о выборе блока Alt+Select . Также я хотел бы увидеть, есть ли в Notepad ++ техника.
Редактирование с несколькими курсорами изначально поддерживается в Visual Studio, начиная с версии 8 с обновлением 2017 г. Ниже приводится отрывок из документация:
- Ctrl + Alt + щелчок: добавить дополнительный курсор
- Ctrl + Alt + двойной щелчок: добавить вторичное выделение слова
- Ctrl + Alt + щелчок + перетаскивание: добавить вторичный выбор
- Shift + Alt + . : добавить следующий совпадающий текст как выделенный
- Shift + Alt + ; : добавить весь совпадающий текст в качестве выделений
- Shift + Alt + , : удалить последнее выделенное вхождение
- Shift + Alt + / : пропустить следующее совпадающее вхождение
- Alt + щелчок: добавить выделение поля
- Esc или щелкните: Очистить все выбранные
Некоторые из этих команд также доступны в меню Edit :
Расширение MixEdit для Visual Studio позволяет выполнять одновременное редактирование в соответствии с описанием. Он поддерживает несколько вставок и множественный выбор.
В 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 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 )
Для множественного выбора вы можете использовать CTRL-SHIFT-L. Вы можете щелкнуть по слову, а затем нажать комбинации клавиш (CTRL-SHIFT-L), это выберет все те же типы слов из файла (vs-code).
Теперь плагин - это многострочные трюки. Кнопки конца и начала нарушили выделение.
В visual 2019 откройте параметры, чтобы показать все введите здесь описание изображения
И множественный выбор: удерживайте Ctrl + Alt , затем щелкните нужное положение или, удерживая Shift + Alt , нажмите позицию, чтобы выбрать несколько строк от начала до конца, щелкнув по строке
Я не смог найти ничего встроенного, и это печально. Эта функция есть в CodeRush хотя.
В Notepad ++ эта функция встроена. Просто включите одновременное редактирование в
Настройка> Предпочтения> Редактирование> Настройки одновременного редактирования
Но он не такой интуитивно понятный, как MS Word, который позволяет выбрать два слова двойным щелчком по ним (конечно, после Ctrl).
Обновление: расширение MixEdit теперь предоставляет эту возможность.
Расширение MultiEdit для VS позволяет нечто подобное (не поддерживать множественный выбор на момент написания этой статьи, только несколько кареток)
Посетите Hanselman's, чтобы увидеть быстрый анимированный гиф этого в действии: Одновременное редактирование для Visual Studio с бесплатным Расширение MultiEdit
Для кода Visual Studio
Я получил этот вопрос, потому что искал способ выделить несколько слов щелчком мыши на VS Code, что должно быть достигнуто с помощью alt+click , но эта привязка клавиш не работала (я думаю, что это что-то связано с моим ОС, Ubuntu ).
Если вы ищете что-то подобное, попробуйте изменить ключ на ctrl+click .
Перейдите в Selection > Switch to Ctrl+Click for Multi Cursor
Просто обратите внимание,
MixEdit не является полностью бесплатным.
«Это программное обеспечение в настоящее время не лицензировано для пользователей и работает в ознакомительном режиме. MIXEDIT можно загрузить и оценить бесплатно, однако для дальнейшего использования необходимо приобрести лицензию».
Начиная с Visual Studio 2017 версии 15.8, Ctrl + Alt + Click теперь должен быть встроенным способом управления несколькими каретками.
В Visual Studio 2019 вы можете поместить курсор в нужное место, а затем нажать SHIFT ALT и. (точка). Это выберет следующее вхождение.
Можно ли включить многострочное редактирование, как в Sublime Text ?
Например, нажмите, Ctrl чтобы разместить дополнительные курсоры курсора и получить возможность писать / удалять одновременно в нескольких местах документа.
Во многих приложениях для Mac (например, TextEdit) я также могу перетащить мышь, удерживая клавишу Option, чтобы выбрать поле. Это доступно в VS Code?
Для тех, кто ищет название этой команды в разделе быстрых клавиш, это: editor.action.insertCursorAtEndOfEachLineSelected
@enzoborgfrantz +1 Именно то, что я искал! В выбранном ответе сначала должны быть упомянуты соответствующие команды редактора, поскольку сочетания клавиш могут различаться.
В Windows вы удерживаете Ctrl + Alt , нажимая клавиши ↑ со ↓ стрелками вверх или вниз, чтобы добавить курсоры.
Linux: Shift + Alt + ↑ / ↓
Note that third-party software may interfere with these shortcuts, preventing them from working as intended (particularly Intel's HD Graphics software on Windows; see comments for more details).
If you experience this issue, you can either disable the Intel/other software hotkeys, or modify the VS Code shortcuts (described below).
Нажмите Esc для возврата к одиночному курсору.
Или, как указывает Исидор Николич , вы можете удерживать Alt и щелкать левой кнопкой мыши, чтобы произвольно размещать курсоры.
Вы можете просматривать и редактировать сочетания клавиш через:
File → Preferences → Keyboard Shortcuts
Официальные шпаргалки по сочетаниям клавиш VS Code:
@Nacimota - на машине с Windows 10 (только что протестированной) комбинация CTRL + ALT + ARROW перевернет экран, CTRL + ALT + SHIFT + ARROW создаст новый курсор. Опубликованный список быстрых клавиш PDF может быть устаревшим.
@AlexC ярлыки не устарели; скачайте последнюю сборку и посмотрите конфигурацию самостоятельно. Если вы обнаружите, что перечисленные ярлыки переворачивают ваш экран, я готов поспорить, потому что у вас есть графический процессор Intel и для него используется программное обеспечение Intel, которое по умолчанию перехватывает эти ярлыки. Откройте программное обеспечение HD Graphics и отключите или повторно запрограммируйте горячие клавиши, если это вас беспокоит, но не редактируйте мой пост, чтобы добавить неверную информацию . Перечисленные ярлыки точны, и я не собираюсь перечислять все части стороннего программного обеспечения, которые могут или не могут мешать им.
@Nacimota при всем уважении, это была честная ошибка, которая представляет реальность для значительной части пользователей. Есть достаточно машин Intel, где это может быть конфигурация по умолчанию, чтобы дополнительная информация была ценна. У нас обоих есть цель предоставить наиболее актуальный ответ. Было бы полезно добавить дополнительное предложение, чтобы перечислить эту разницу.
VS Code — это, в наши дни, один из самых популярных редакторов кода. Продуманный подход к использованию этого редактора способен значительно повысить продуктивность программиста. В этом материале представлено несколько советов по профессиональному использованию VS Code. Хочется надеяться, что эти советы вам пригодятся.
1. Использование нескольких курсоров
Может случиться так, что программисту понадобится вводить один и тот же текст одновременно в нескольких местах.
Вот как выглядит то, что должно получиться, в редакторе.
Код в редакторе
Как решить эту задачу? Раньше я поступал так: вводил нечто вроде текста class=«odd» в одном месте, а потом копировал его в буфер обмена и вставлял везде, где он нужен. Правда, после того, как я узнал о возможности работать с несколькими курсорами в VS Code, я так делать перестал. Это значительно повысило эффективность моего труда.
В частности, речь идёт о следующем. Для добавления в текст нескольких курсоров нужно удерживать клавишу Alt на клавиатуре (в macOS — клавишу Option ) и щёлкать по тем местам, где должны появиться курсоры. После этого всё, что вводится с клавиатуры, будет одновременно появляться везде, где имеются курсоры.
Использование нескольких курсоров
Напомню, что речь идёт о следующих сочетаниях клавиш:
- Windows: Alt+Щелчок мышью .
- macOS: Option+Щелчок мышью .
2. Переименование сущностей и команда Rename Symbol
Теперь давайте изучим ещё один простой приём.
При вводе кода или текста документа можно столкнуться с ошибкой в написании какого-нибудь слова. Или, может быть, нужно будет применить в коде новое соглашение об именовании сущностей. В подобных ситуациях возникает нужда в одновременной обработке множества строк.
Представим, что у нас есть код, напоминающий тот, что приведён ниже. Нам нужно заменить все вхождения foo на bar . Как это сделать?
Если вручную менять каждую строку, то у такого подхода будет пара недостатков:
- Слишком много ручного труда.
- Высокая вероятность возникновения ошибок.
Использование команды меню Rename Symbol
Это меню вызывается при выполнении щелчка правой кнопкой мыши по выделенному тексту. Другой способ вызова этой команды — нажать F2 после выделения текста, который надо отредактировать.
3. Перемещение выделенных строк вверх и вниз
Иногда нужно переместить какой-то программный код или обычный текст вверх или вниз в документе. Эту задачу можно решить так:
- Выделим текст.
- В Windows воспользуемся сочетанием клавиш Alt+Стрелка вверх для перемещения текста вверх. Для перемещения текста вниз, соответственно, воспользуемся сочетанием клавиш Alt+Стрелка вниз .
- В macOS роль клавиши Alt играет клавиша Options .
Перемещение текста вверх и вниз
Благодаря этому подходу можно быстро и легко менять порядок размещения текста.
4. Сниппеты
В ходе написания кода нам постоянно приходится вводить с клавиатуры одни и те же повторяющиеся конструкции.
Например, HTML5-файлы всегда содержат следующую базовую структуру документа:
А при написании for-циклов на JavaScript мы всегда вводим такие фрагменты кода:
Можно привести ещё очень много подобных примеров. Если бы приходилось вводить эти фрагменты кода вручную, поступая так всегда, когда они нужны, это было бы очень неэффективно.
К счастью, VS Code даёт в наше распоряжение настраиваемый механизм автодополнения ввода. Вот как это выглядит.
Автодополнение ввода
Поговорим о том, как настроить VS Code и обзавестись тем, что показано на предыдущем рисунке.
▍Создание конфигурационного файла
Для настройки автодополнения ввода в VS Code нужно сначала создать соответствующий конфигурационный файл. Редактор читает этот файл, реализуя соответствующие механизмы. Для того чтобы создать этот файл, нужно, как показано на следующем рисунке, перейти в меню Code > Preferences > User Snippets .
Команда меню User Snippets
После этого появится следующая панель.
Панель для работы со сниппетами
Здесь можно выбирать существующие конфигурационные файлы и редактировать их. Ещё тут можно создать новый конфигурационный файл. Мы собираемся поступить именно так.
Если выбрать тут команду New Global Snippets file , будет создан конфигурационный файл, доступный глобально. Если же выбрать команду вида New Snippets file for 'test' — будет создан файл, доступный локально, в текущем рабочем пространстве.
Мы создадим локальный файл.
После выбора команды New Snippets file for 'test' система запросит имя файла.
Ввод имени нового файла
Конфигурационный файл мы создали, но пока он пуст.
Новый пустой конфигурационный файл
Я, чтобы вам было удобнее, записал весь вышеописанный процесс и представил его здесь в виде анимированного gif-файла.
Создание нового конфигурационного файла
▍Создание сниппетов
Конфигурационный файл хранит данные в формате JSON. Вот пример его содержимого.
Содержимое конфигурационного файла
Вот — то же самое, но уже в виде обычного текста:
Для начала давайте взглянем на поле «html5 autocomplete» . Смысл этого поля заключается лишь в том, чтобы сообщить программисту о назначении сниппета. Сюда можно внести всё что угодно.
Разберёмся теперь с полем «prefix»: «html5» . Оно предназначено для описания задаваемого нами сокращения, которое редактор раскрывает в некий фрагмент кода. Когда мы вводим в редакторе текст html5 , редактор автоматически заменяет его на то, что задано в элемент «body» .
Элемент «body»: […] содержит тот код, который редактор должен вставить в документ вместо введённого нами префикса. Так как этот код может состоять из множества строк, данное поле представлено массивом. Каждый элемент массива — это одна строка кода. Если «перевести» конструкцию, которую мы только что рассматривали, на язык обычного HTML-кода, то получится, что она равносильна следующему:
Теперь, когда в нашем распоряжении есть простой конфигурационный файл, давайте его протестируем.
Испытание конфигурационного файла
▍Область действия сниппетов
Мы убедились в том, что наш конфигурационный файл позволил организовать автодополнение ввода. Но в нём есть один недостаток. Дело в том, что конструкция, представленная в нём префиксом html5 , используется только в HTML-файлах. В JavaScript-файлах нам эта конструкция не нужна.
В таких случаях очень кстати оказывается возможность указания области действия сниппетов. А именно, речь идёт о поле «scope»: «html» , которое нужно добавить в описание сниппета.
Ограничение области действия сниппета HTML-файлами
Испытаем нашу систему снова. Попробуем префикс html5 в HTML-файле и в JS-файле.
Испытание сниппета в HTML- и в JS-файле
В JS-файле, как видно, ввод html5 ни к чему особенному не приводит. А это — именно то, что нам нужно.
▍Курсор
Давайте снова испытаем автодополнение ввода, выполняемое на основе созданного нами файла. Присмотримся к нему. Нет ли в нём каких-нибудь изъянов?
Исследование автодополнения ввода
Видно, что после вставки блока кода в редактор курсор автоматически попадает в конец этого блока. Но блок кода, который автоматически вставлен в документ, это лишь заготовка, над которой нужно ещё поработать. В частности, надо ввести содержимое тега .
Пользоваться нашим механизмом автодополнения ввода было бы гораздо удобнее в том случае, если бы курсор автоматически устанавливался между открывающей и закрывающей частями тега .
Для того чтобы это сделать, мы можем воспользоваться в конфигурационном файле специальной конструкцией $0 . Вот как это выглядит.
Настройка местоположения курсора
Теперь, после того, как код оказывается в документе, курсор автоматически устанавливается туда, где в конфигурационном файле имеется $0 .
Курсор устанавливается в нужном месте
▍Пример
А теперь, чтобы закрепить то, что мы только что изучили, давайте рассмотрим новый пример.
Нам хотелось бы, чтобы, после ввода в JavaScript- или TypeScript-файле текста fori , там автоматически появлялась бы следующая конструкция:
И ещё — чтобы курсор автоматически устанавливался бы после i < .
Можете пока не смотреть на решение этой задачи. Попытайтесь решить её самостоятельно.
В общем-то, решение этой задачи может быть представлено таким конфигурационным файлом:
Использование сниппета fori
Сниппетами пользуются именно так. Я много рассказывал об этом, так как сниппеты — это одна из моих любимых возможностей VS Code. Я думаю, что она пригодится и вам. Раньше, когда я сталкивался с повторяющимися фрагментами кода, мне приходилось копировать их из файлов, в которых они уже были. Это — медленный процесс, чреватый ошибками. А теперь, благодаря возможности оформлять такие фрагменты кода в виде сниппетов, задача ввода повторяющихся фрагментов кода стала гораздо проще.
Читайте также: