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