Горячие клавиши кажутся темой для новичков ровно до первого случая, когда возможность не работает. Cursor публикует отдельный справочник сочетаний для общих действий, разговора с агентом, точечной правки, контекста, подсказок и терминала. Все они переопределяются в настройках, и именно это создаёт неочевидный класс проблем: конфликт с системным сочетанием или с расширением выглядит как сломанная функция, а не как перехваченная клавиша.
Наивная реакция на такую поломку - переустановка или поиск бага. Правильная - проверить, кто перехватывает сочетание. Терминал, оболочка, оконный менеджер, расширение редактора и сам редактор стоят в очереди раньше или позже, и та же комбинация в другом окружении ведёт себя иначе. Отдельная ловушка - фокус: внутри терминала часть сочетаний уходит оболочке, а не редактору, и то же нажатие даёт разный результат в зависимости от того, где стоит курсор.
Полезно один раз свести базовые действия и сочетания в таблицу: открыть агента, вызвать точечную правку, добавить выделение в разговор, переключить режим, принять и отклонить подсказку, запустить обзор в командной строке. Ниже такая карта. Это не полный справочник, а тот минимум, который стоит довести до рефлекса: именно эти действия повторяются десятки раз в день.
| Действие | Сочетание по умолчанию |
|---|---|
| Показать или скрыть боковую панель | Cmd/Ctrl+I |
| Точечная правка | Cmd/Ctrl+K |
| Добавить выделение в новый разговор | Cmd/Ctrl+L |
| Переключить режим | Shift+Tab |
| Принять подсказку | Tab |
| Принять слово подсказки | Cmd/Ctrl+вправо |
| Обзор в командной строке | Ctrl+R |
Разбор занимает минуту и всегда идёт одним путём. Сначала проверяют, работает ли действие другим способом: если оно вызывается не клавишей и срабатывает, проблема в сочетании, а не в возможности. Дальше смотрят настройки сочетаний - там видно, назначена ли комбинация на что-то ещё. Если и здесь чисто, перехват происходит вне редактора, и остаётся два кандидата: система и сторонняя программа, висящая на глобальных клавишах. Вывод из разбора всегда один - переназначить конфликтующее, а не искать поломку в продукте.
Отдельная тема - глубокие ссылки. Cursor понимает собственную схему адресов: она открывает разговор с готовым запросом, команду или правило проекта, а отдельной ссылкой ставится внешний сервер. Это удобно для документации и онбординга: ссылка в описании задачи ведёт не в общий раздел, а прямо туда, где надо посмотреть. Но у удобства есть цена, о которой стоит знать заранее.
Ссылка на установку внешнего сервера содержит закодированную конфигурацию. Формально это просто удобная упаковка, фактически - исполняемое решение, приехавшее одним нажатием. Кодирование не является проверкой безопасности: оно скрывает содержимое от глаз, а не делает его безопасным. Перед тем как распространять такую ссылку внутри команды, документируют ожидаемую цель и показывают людям расшифрованную конфигурацию - иначе установка превращается в доверие вслепую.
Отсюда естественный переход к онбордингу. Хороший результат - не в том, чтобы новый разработчик получил ваши настройки, а в том, чтобы он мог открыть репозиторий и доказать работающую базу: нужные расширения, настройки, правила, навыки и одна проверочная задача, которая должна пройти. Такой набор версионируется вместе с проектом и не зависит от того, что накопилось на конкретной машине.
Проверочная задача годится не любая. Собрать проект недостаточно: сборка не трогает ни правила, ни навыки, ни внешние серверы, и зелёная сборка ничего не говорит про среду агента. Работает та задача, которая проходит через весь настроенный путь: агент читает правила проекта, вызывает подключённый инструмент и упирается в подготовленный обработчик, а результат виден глазами. Тогда её провал сразу называет сломанное звено, а не оставляет человека наедине с общим ощущением, что что-то не так.
Инженерный вывод простой: воспроизводимая среда важнее перенесённой. Импорт чужого состояния экономит час на старте и стоит дней разбирательств потом, потому что вместе с настройками приезжают чужие переопределения клавиш, отключённые проверки и забытые эксперименты. Список необходимого плюс проверочная задача дают то же удобство без наследства: любой новый человек за полчаса получает среду, в которой понятно, что должно работать и как это проверить.
Типичные провалы предсказуемы. Списать перехваченное сочетание на поломку функции. Раздать ссылку на установку с закодированной конфигурацией без объяснения, что именно она добавляет. Считать импорт настроек онбордингом. И не иметь проверочной задачи - тогда новый разработчик узнаёт о неработающей среде на первой же реальной задаче.