VS Code: мультикурсор и выделение

Мультикурсор в VS Code — режим редактирования с несколькими курсорами одновременно, позволяющий вносить идентичные правки в нескольких местах за одно действие.

Зачем нужно

Ручное переименование переменной в 10 местах — медленно и ошибочно. Мультикурсор позволяет выделить все вхождения слова и редактировать их синхронно. Это незаменимый инструмент для рефакторинга, массового форматирования и преобразования данных.

Где используется

  • Переименование переменной/ключа по всему файлу
  • Добавление одинакового префикса/суффикса к нескольким строкам
  • Изменение структуры данных (например, список строк → массив объектов)
  • Быстрый рефакторинг без поиска-замены

Добавление курсоров

Alt + Click         — добавить курсор в нужном месте (Windows/Linux)
Opt + Click         — добавить курсор (macOS)
Alt + Shift + Click — добавить курсоры от текущей до кликнутой строки

Ctrl + Alt + ↑/↓    — добавить курсоры выше/ниже текущей строки (Windows/Linux)
Opt + Cmd + ↑/↓     — добавить курсоры выше/ниже (macOS)

Ctrl + D            — выделить следующее вхождение текущего слова/выделения
Ctrl + Shift + L    — выделить ВСЕ вхождения слова сразу

Выделение текста

Shift + →/←/↑/↓    — расширить выделение по символам/строкам
Shift + Alt + →/←   — расширить выделение по словам (Windows/Linux)
Shift + Opt + →/←   — расширить выделение по словам (macOS)
Ctrl + Shift + →/←  — выделить слово вправо/влево

Alt + Shift + drag  — прямоугольное (column) выделение мышью
Shift + Alt + ↓     — дублировать текущую строку вниз
Alt + ↓/↑           — переместить строку вниз/вверх

Практические примеры

Переименование переменной по всему файлу

1. Кликнуть на имя переменной
2. Ctrl+D → выделяет текущее вхождение
3. Ctrl+D ещё раз → добавляет следующее вхождение
4. Ctrl+Shift+L → выделяет ВСЕ вхождения
5. Теперь печатать → новое имя заменяет все

Добавление запятых к массиву строк

Исходные данные (список строк):
  apple
  banana
  cherry

Нужно получить:
  "apple",
  "banana",
  "cherry"

Решение:
1. Выделить "apple" → Ctrl+Shift+L — все три слова выделены
2. Home — курсоры в начало строк
3. " — вставляет кавычку перед каждым
4. End — в конец строк
5. ", — вставляет кавычку и запятую

Прямоугольное выделение

const name = 'Alice';
const age  = 25;
const city = 'Moscow';

// Alt+Shift+drag по 'Alice', 25, 'Moscow' — выделить только значения
// Удалить / заменить все значения одновременно

Частые ошибки

  • Используют Ctrl+D, не видя всех вхождений — пропускают некоторые
  • Путают Ctrl+D (следующее вхождение) и Ctrl+Shift+L (все вхождения)
  • Не используют F2 для переименования символа — лучше для рефакторинга с TS/JS LSP

Связанные темы

Ресурсы