Cursor deep dive: Tab, Cmd+K, and Agent
A deep dive into Cursor: Tab predictions of the next edit, inline edits via Cmd+K, the multi-file Agent (Composer), and @-symbols for precise context.
Lesson content is currently available in Russian.
What you will learn
- →Использовать Cursor Tab как инструмент серийных правок, а не только вставки кода.
- →Делать точечные изменения через Cmd+K с итеративными уточнениями.
- →Ставить задачи Agent с checkpoints и подбирать контекст @-символами.
Tab: предсказание следующей правки
Cursor Tab — не классический автокомплит. Он предсказывает правки: не только вставку нового кода у курсора, но и изменение существующих строк, и показывает предложение как мини-дифф. Клавиши: Tab — принять, Esc — отклонить, Cmd+→ — принять частично, по слову. Самая сильная возможность — прыжки: после одной вашей правки Tab предсказывает следующее место изменения и предлагает перепрыгнуть туда той же клавишей. Переименовали поле в типе — Tab проведёт вас по всем использованиям в файле: Tab, Tab, Tab — и серийная правка закончена без поиска с заменой.
Попробуйте на практике: измените сигнатуру функции и следите за подсказками — Cursor предложит обновить вызовы, импорты и типы по цепочке. Это превращает Tab из «печатной машинки» в инструмент рефакторинга на микроуровне.
Два практических совета. Первый: когда пишете прозу, комментарии или работаете в паре, подсказки отвлекают — отключайте их временно через Snooze в настройках Tab. Второй, важнее: не входите в «Tab-транс», когда рука жмёт клавишу быстрее, чем глаза читают предложение. Правило простое — каждый серый блок прочитывается до принятия. Это секунда на строку, и именно эта секунда отличает ускорение от накопления незамеченных ошибок.
Cmd+K: точечные инлайн-правки
Cmd+K (Ctrl+K на Windows/Linux) — вторая передача внутри Cursor: точечная правка без ухода из файла. Выделите фрагмент, нажмите Cmd+K, опишите изменение — «перепиши на async/await», «добавь обработку пустого массива», «типизируй параметры» — и Cursor покажет дифф прямо в редакторе: зелёное добавлено, красное удалено. Принять — Cmd+Enter, отклонить — Cmd+Backspace. Без выделения Cmd+K генерирует новый код в позиции курсора.
Дифф не обязан быть финальным: в то же поле можно дописать уточнение — «то же самое, но без сторонних библиотек» — и предложение перестроится. Такой цикл из двух-трёх уточнений быстрее, чем идеальный промпт с первого раза. В контекст инструкции можно добавлять @-символы, если правка должна учитывать соседний файл или документацию.
Отдельный бонус — Cmd+K в терминале Cursor: естественный язык превращается в команду. «покажи 10 последних коммитов с файлами» станет корректным git log с флагами — полезно для редко используемых команд, которые вечно приходится гуглить.
Граница применимости: Cmd+K хорош, пока изменение помещается в один экран и один файл. Если инструкция начинается со слов «и ещё поменяй в другом файле» — это уже задача для Agent, а не для инлайн-правки.
Agent: многофайловая работа с checkpoints
Панель агента открывается по Cmd+I. В выпадающем списке три режима: Agent — полная автономия с поиском по кодовой базе, правками нескольких файлов и запуском терминальных команд; Ask — только вопросы и ответы без правок; Manual — правки строго в тех файлах, которые вы приложили, без терминала. Начинающим полезна лестница доверия: сначала Ask, чтобы получить план, затем Manual для контролируемых правок, затем полноценный Agent.
Перед изменениями агент создаёт checkpoint — снимок состояния, к которому можно откатиться кнопкой Restore, если прогон ушёл не туда. Это ваша страховка, но она не отменяет git: чистое рабочее дерево до запуска агента остаётся обязательной гигиеной.
Два правила эффективной постановки задачи. Первое — цель плюс проверка: не «поправь валидацию», а «валидация email должна отклонять адреса без домена; npm test в папке server должен пройти». Агент, у которого есть команда верификации, сам замыкает цикл: правка — прогон — исправление. Второе — один прогон, одна задача: не сваливайте в один запрос фикс бага, рефакторинг и обновление зависимостей. Итерации по текущей задаче продолжайте в том же треде — контекст сохранится; новую задачу начинайте новым тредом, чтобы не тащить нерелевантную историю.
@-символы: точный контекст вместо большого
Качество ответа определяется контекстом, и в Cursor контекст собирается @-символами прямо в поле запроса:
@Filesи@Folders— конкретные файлы и папки;@Code— отдельный символ: функция, класс, константа;@Docs— официальная документация популярных библиотек и добавленные вами URL;@Git— диффы и история коммитов;@Web— живой поиск в интернете;@Recent Changes— ваши недавние правки.
Под капотом Cursor индексирует кодовую базу: строит embeddings по файлам, чтобы семантический поиск находил релевантный код даже без явных @-указаний. Каталоги с генерированным кодом, билд-артефактами и секретами стоит исключить из индекса через файл .cursorignore — меньше шума в поиске и меньше лишнего в контексте.
Главный принцип: точный контекст бьёт большой. Модель, получившая два действительно относящихся к делу файла, отвечает лучше, чем модель, в которую высыпали всю папку src: релевантные детали тонут в шуме, а окно контекста не бесконечно. Антипаттерн — прикладывать всю кодовую базу «на всякий случай» к каждому запросу. Паттерн — думать как ревьюер: какие файлы понадобилось бы открыть человеку, чтобы ответить на этот вопрос? Их и прикладывайте. Если не знаете, какие именно, — сначала спросите агента в режиме Ask, где живёт нужная логика: поиск по индексу справится.
Practice
Час внутри Cursor
В своём репозитории: (1) сделайте серийную правку через Tab-прыжки — переименование поля или изменение сигнатуры; (2) перепишите одну функцию через Cmd+K минимум с одним уточнением; (3) поставьте Agent задачу с целью и командой проверки, приложив контекст @-символами, и примите результат по диффу.
Deliverable
Три коммита (по одному на инструмент) и заметка 5–7 предложений: где какой инструмент оказался быстрее и почему.
Checkpoint
Опишите свой прогон Agent: как вы сформулировали цель и команду проверки, какой контекст приложили и что проверяли в диффе перед принятием?
- ✓ Задача поставлена через цель и проверяемый критерий, а не через диктовку правок.
- ✓ Контекст собран точечно @-символами, а не «всей папкой на всякий случай».
- ✓ Дифф просмотрен пофайлово до принятия, checkpoint/Restore упомянут как страховка.
Check yourself
Sources