Введение
Cursor — это IDE на базе VS Code, в которую встроены AI-модели (GPT-4o, Claude 3.5 Sonnet, Cursor Tab) для автодополнения, чата и командного режима. В отличие от обычных плагинов-помощников, Cursor понимает контекст твоего проекта: структуру папок, импорты, типы и даже историю изменений. Это позволяет не просто генерировать код, а решать задачи в рамках твоей архитектуры.
Согласно опросу Stack Overflow 2025, 78% разработчиков уже используют AI-инструменты в работе, а Cursor вошёл в топ-5 IDE для AI-assisted разработки. Однако эффективность работы с Cursor напрямую зависит от качества промтов. Плохо сформулированный запрос ведёт к общим ответам или коду, который не подходит для твоего проекта. Я собрал 10 конкретных промтов для трёх режимов Cursor: автодополнение (Tab), чат (Chat) и командный режим (Cmd+K).
Каждый промт — это готовая строка, которую можно скопировать и вставить. Для наглядности я привёл примеры на Python и JavaScript, но промты работают с любым языком.
1. Промты для автодополнения (Cursor Tab)
Автодополнение в Cursor работает на основе модели Cursor Tab, которая анализирует не только текущий файл, но и соседние модули. Чтобы получить максимальную пользу, нужно задавать контекст через комментарии.
1.1. Генерация функции с типизацией и докстрингом
Назначение: Быстро создать функцию с аннотациями типов, документацией и обработкой ошибок.
Промт:
# Напиши функцию, которая принимает список чисел и возвращает
# среднее значение. Добавь typing, docstring, обработку пустого
# списка и логирование ошибок.
Пример использования:
Вставь этот комментарий в начало строки или над пустой строкой в файле utils.py. Нажми Tab — Cursor предложит готовую функцию. В результате получишь:
import logging
from typing import List, Optional
logger = logging.getLogger(__name__)
def calculate_average(numbers: List[float]) -> Optional[float]:
"""
Вычисляет среднее арифметическое списка чисел.
Args:
numbers: Список чисел с плавающей точкой.
Returns:
Среднее значение или None, если список пуст.
Raises:
TypeError: Если numbers не является списком.
"""
if not isinstance(numbers, list):
logger.error("Аргумент должен быть списком, получен %s", type(numbers).__name__)
raise TypeError("Аргумент должен быть списком")
if not numbers:
logger.warning("Передан пустой список")
return None
return sum(numbers) / len(numbers)
1.2. Генерация теста для существующей функции
Назначение: Написать unit-тест для функции, которая уже есть в проекте.
Промт:
# Напиши pytest-тест для функции calculate_average.
# Проверь: нормальный случай, пустой список, список с одним
# элементом, список с отрицательными числами, передачу строки
# вместо списка (ожидаем TypeError).
Пример использования:
Вставь комментарий в файл test_utils.py. Cursor автоматически подставит импорты и сгенерирует тесты.
2. Промты для чата (Chat / Ctrl+K)
Чат в Cursor позволяет задавать вопросы в контексте текущего файла или всего проекта. Используй @file, @folder или @codebase, чтобы указать контекст.
2.1. Рефакторинг с сохранением логики
Назначение: Переписать существующий код, улучшив читаемость, производительность или соответствие best practices.
Промт:
@file: user_service.py
Рефакторинг этого файла: вынеси логику валидации email в
отдельный класс Validator, добавь обработку исключений и
замени циклы на list comprehensions. Не меняй сигнатуру
публичных методов. Выведи итоговый код с пояснениями.
Пример использования:
Открой файл user_service.py, нажми Ctrl+K (или Cmd+K), вставь промт. Cursor покажет diff и предложит применить изменения.
2.2. Объяснение сложного кода
Назначение: Понять, что делает непонятный участок кода, особенно если это legacy или чужой проект.
Промт:
@selection
Объясни этот код построчно. Напиши, какие алгоритмы здесь
используются, и укажи, какие потенциальные баги или
уязвимости есть. Если можно упростить — покажи альтернативу.
Пример использования:
Выдели фрагмент кода, нажми Ctrl+L (или Cmd+L), вставь промт. Cursor даст развёрнутый ответ с анализом.
2.3. Генерация миграции базы данных
Назначение: Создать скрипт миграции для изменений в схеме БД.
Промт:
@codebase
В проекте используется SQLAlchemy. Мне нужно добавить таблицу
'audit_log' с полями: id (UUID), user_id (FK на users.id),
action (строка, не null), timestamp (datetime, по умолчанию
now). Сгенерируй Alembic migration и модель SQLAlchemy для
этой таблицы.
3. Промты для командного режима (Cmd+K / Inline edit)
Командный режим позволяет редактировать код прямо в редакторе без переключения в чат.
3.1. Исправление ошибки по сообщению компилятора
Назначение: Быстро исправить ошибку, которую выдаёт TypeScript-компилятор или линтер.
Промт:
/ Исправь ошибку TS2322: Type 'string | undefined' is not
assignable to type 'string'. Убедись, что переменная точно
не undefined, используя guard clause.
Пример использования:
Выдели строку с ошибкой, нажми Cmd+K, введи промт. Cursor предложит исправление.
3.2. Оптимизация SQL-запроса
Назначение: Улучшить производительность медленного запроса.
Промт:
/ Оптимизируй этот SQL-запрос: добавь индексы, замени
подзапросы на JOIN, используй EXPLAIN ANALYZE для проверки.
Покажи итоговый запрос и поясни изменения.
4. Промты для работы с контекстом проекта
4.1. Генерация документации для модуля
Назначение: Создать README или docstring для целого модуля.
Промт:
@folder: src/services
Сгенерируй README.md для всех сервисов в этой папке. Опиши
назначение каждого класса, зависимости, примеры использования
и требования к окружению. Используй формат Markdown.
4.2. Код-ревью изменений
Назначение: Проверить изменения в текущем pull request на баги, уязвимости и отклонения от code style.
Промт:
@git diff HEAD~1
Проведи код-ревью изменений в последнем коммите. Найди:
1. Потенциальные баги (null pointer, race condition)
2. Уязвимости (SQL injection, XSS)
3. Нарушения code style (PEP8, ESLint)
4. Предложения по оптимизации
Для каждой проблемы укажи строку и предложи исправление.
Сравнение режимов Cursor
| Режим | Клавиши | Когда использовать | Лучшие промты |
|---|---|---|---|
| Tab | Tab (автодополнение) | Написание простых функций, тестов, boilerplate | Промты 1.1, 1.2 |
| Chat (Ctrl+K) | Ctrl+K / Cmd+K | Рефакторинг, объяснение, генерация миграций | Промты 2.1—2.3 |
| Inline edit (Cmd+K) | Cmd+K (выделив код) | Исправление ошибок, оптимизация, мелкие правки | Промты 3.1, 3.2 |
| Codebase search | Ctrl+Shift+Enter / Cmd+Shift+Enter | Поиск по всему проекту, генерация документации | Промт 4.1 |
Заключение
Промты в Cursor — это не магия, а инструмент, который требует правильного контекста и формулировки. Главные правила:
- Указывай язык и фреймворк (Python, TypeScript, React, Django).
- Давай примеры ожидаемого результата (входные данные → выходные).
- Используй @file, @folder, @codebase — без контекста Cursor «не знает» твой проект.
- Проверяй сгенерированный код — AI может ошибаться в бизнес-логике или безопасности.
Начни с промтов из этой подборки, адаптируй их под свои задачи и постепенно выработай собственный стиль. Чем точнее твой запрос, тем меньше времени ты тратишь на правки.
Если ты хочешь глубже изучить интеграцию AI-инструментов в рабочий процесс, загляни в наш блог — мы регулярно публикуем кейсы и гайды по AI-assisted разработке.
Комментарии