Официальный справочник сочетаний записан в нотации macOS. На других платформах командную клавишу обычно заменяют на управляющую, но точное соответствие смотрят в настройках самого инструмента. Расширения и пользовательские переназначения меняют картину сильнее, чем разница операционных систем: система задаёт нотацию, а конкретное назначение живёт в конфигурации редактора, и именно она определяет, что произойдёт по нажатию.
Сочетания удобно держать в голове группами. Общие открывают панели, меню режимов, настройки и палитру команд. Группа разговора отвечает за отправку и очередь сообщений, отмену генерации, добавление контекста из выделения и буфера обмена, принятие и отклонение всех изменений, переключение между чатами и режимами. Отдельные группы - точечная правка в файле, работа с подсказками в редакторе и терминал. Границы групп не декоративные: они совпадают с поверхностями, каждая из которых принимает нажатия самостоятельно.
Полезно один раз свести самое частое в таблицу. Ниже она и приведена - не весь официальный список, а тот набор, который повторяется десятки раз в день. Именно эти сочетания стоит довести до рефлекса; остальные ищутся в справочнике по мере надобности и обычно так и остаются справочными.
| Группа | Сочетание | Действие |
|---|---|---|
| Общие | Cmd I, Cmd L | Показать или скрыть боковую панель |
| Общие | Cmd . | Меню режимов |
| Общие | Cmd Shift P | Палитра команд |
| Общие | Cmd Shift J | Настройки инструмента |
| Разговор | Return | Подтолкнуть агента (поведение по умолчанию) |
| Разговор | Cmd Return при вводе | Принудительно отправить сообщение |
| Разговор | Ctrl Return | Поставить сообщение в очередь |
| Разговор | Cmd Shift Backspace | Отменить генерацию |
| Разговор | Cmd Shift L с выделением | Добавить выделенный код в контекст |
| Разговор | Cmd Return при предложенных правках |
| Принять все изменения |
| Разговор | Cmd Backspace | Отклонить все изменения |
|---|
| Разговор | Shift Tab | Переключить режим агента |
|---|
| Разговор | Cmd N, Cmd T | Новый чат и новая вкладка чата |
|---|
Отдельного внимания заслуживает пара отправки и очереди. Обычная отправка начинает работу немедленно, постановка в очередь откладывает сообщение до конца текущего шага - это разные действия с разными последствиями для траектории, и различать их полезно на уровне пальцев, а не рассуждения. Точно так же различаются принятие всех изменений и отклонение всех: две операции лежат рядом, отличаются одной клавишей и стоят по-разному, потому что одна из них уничтожает результат работы целиком.
Одно и то же сочетание нередко означает разное. Командная клавиша с K открывает точечную правку в редакторе и строку запроса в терминале; командная клавиша с вводом отправляет сообщение, принимает предложенные правки или запускает сгенерированную команду. Противоречия здесь нет: сочетание адресуется той поверхности, где сейчас фокус, и фокус - это и есть недостающий аргумент. Поэтому вопрос что делает эта комбинация некорректен без второго вопроса: где стоит курсор.
Практическая проблема с сочетаниями почти всегда одна: перехват. Терминал, оболочка, оконный менеджер, расширение редактора - каждый уровень может забрать комбинацию себе, и до инструмента она просто не доходит. Внешне это выглядит как неработающая функция, хотя функция цела и вызывается через меню. Правильная реакция - открыть настройки сочетаний и посмотреть, что назначено, а не искать дефект в продукте.
Различить два симптома нетрудно, и это экономит время. Если не происходит ничего - комбинацию забрал кто-то выше по цепочке, и разбираться надо в системе, а не в редакторе. Если происходит не то, что вы ждали, - фокус был в другой поверхности, и виновата не привязка, а курсор. Отсюда же следует граница разумного заучивания: сочетание окупается, когда действие повторяется десятки раз в день. Всё, что делается раз в неделю, дешевле открывать через палитру команд, чем держать в памяти.
Есть и обратная сторона свободы переназначения. Переписав половину сочетаний под себя, вы получаете среду, в которой удобно только вам: помощь коллеге превращается в квест, а любая инструкция перестаёт совпадать с реальностью. Разумный компромисс - менять единицы, а не десятки, и записывать изменения там же, где живёт описание среды, чтобы новый человек в проекте видел отклонения от стандартной раскладки сразу.
Инженерный вывод простой: сочетания - это интерфейс к скорости, а не к возможностям. Всё, что делается сочетанием, делается и через меню; ценность в том, что руки перестают отвлекать голову. Поэтому учат немногое и часто используемое, а остальное оставляют справочнику, куда заглядывают без стыда.
Типичные провалы предсказуемы. Считать перехваченное сочетание сломанной функцией. Нажимать комбинацию, не проверив, где сейчас фокус. Перенести чужую схему целиком и потерять совместимость с документацией. Не различать отправку и очередь в длинной работе. И заучивать полный список вместо десяти рабочих сочетаний.