Учебник по курсору (китайская версия)

Эта статья является вкладом в статью Хуана Стоппы в блоге Code Smarter, Not Harder: Developing with Курсор и Клод Перевод Сонета. Причина, по которой я называю это переводом, заключается в том, что большая часть содержания этой статьи основана на моем собственном опыте, но поскольку структура статьи основана на структуре его статьи, поэтому она называется переводом.

В этом уроке представлены основные функции курсора.

 

Если вы новичок, то хотите действительно написать полный код проекта одним щелчком мыши с помощью AI и автоматически развернуть онлайн-среду для его использования.

Рекомендуем:Bolt: управляемая искусственным интеллектом платформа для полнофункциональной разработки в режиме реального времени, которая генерирует и выполняет полный код проекта в режиме онлайн

Краткое введение в Cursor

 

Cursor - это редактор кода, созданный в лабораториях Anysphere. Он основан на модифицированной производной VSCode, поэтому все ваши конфигурации VSCode могут быть импортированы и использованы в Cursor, что упрощает переход на него, если вы обычно разрабатываете в VSCode.

Самое большое отличие Cursor от VSCode заключается в том, что в него встроен искусственный интеллект для совместной работы над кодом, для чего в VSCode внесен ряд изменений, которые делают его более удобным, чем использование чего-то вроде Github в VSCode. Второй пилот Класс плагина гораздо удобнее. Наверное, говорить об этом однообразно, и я начну с того, что Github Copilot Делайте сравнительные заметки.

Github Copilot импортируется как плагин в VSCode:

Cursor 使用教程(中文版)

Github Copilot

 

Что касается использования, то помощь Copilot сосредоточена на следующих моментах: завершение кода, то же диалоговое окно, что и у GPT, с переписыванием генерации кода.

Завершение кода - это основная функция Copilot, которая мне очень нравится. Она автоматически выдает, что за чем следует, пока вы пишете код, и вам просто нужно нажать клавишу `Tab`, чтобы получить ее предложения:

Cursor 使用教程(中文版)

Завершение кода Github Copilot, как пример документа, который я пишу прямо сейчас

 

Лучшее, что в нем есть, - это захватывающий опыт: я могу легко переписать несколько примеров кода, не выходя из редактора и не копируя и не вставляя исходный код - это не в плане генерации результатов, но в большинстве случаев он действительно генерирует код, который я хочу.

Кроме того, здесь есть такое же диалоговое окно, как и в GPT, преимущество которого заключается в том, что контекст кода, который вы редактируете в данный момент, удобно передавать в большую модель одновременно, что позволяет добиться лучших результатов генерации:

Cursor 使用教程(中文版)

Диалоговое окно Github Copilot

 

Наконец, есть посредственная функция переписывания кода в редакторе, которую можно запустить с помощью маленькой лампочки VSCode (формально называемой Code Action, которая используется для того, чтобы что-то сделать с кодом):

Cursor 使用教程(中文版)

Переписывание кода Github Copilot появляется в Code Action

 

Когда вы решите использовать Copilot для внесения изменений, появится окно запроса, в котором вы можете ввести такие команды, как `/doc`, чтобы помочь Copilot либо сгенерировать документацию, либо лучше изменить/переписать ваш код:

Cursor 使用教程(中文版)

Переработка генерации кода для Github Copilot

 

Хотя это выглядит потрясающе, мой личный опыт говорит о том, что это не работает. :( Потому что он переписывает большую часть времени генерирует новую копию кода, и тогда мне приходится идти удалять оригинальный код снова ....... Скажем так, я использую Copilot в основном потому, что мне нравится функция завершения кода.

А опыт Cursor особенно удивителен: то, что Copilot делает хорошо, он делает лучше; то, что Copilot делает не очень хорошо, он делает идеально.

По моему личному опыту, завершение кода гораздо точнее. Copilot часто не может правильно сгенерировать закрытые блоки кода (например, пары `()` `{}` друг с другом генерируются неправильно), но с Copilot такое случается редко.

Диалоговое окно, боже мой, Copilot - это просто кусок дерьма по сравнению с ним, потому что диалог Cursor генерирует код, который может быть применен непосредственно к вашему коду:

Cursor 使用教程(中文版)

Функция apply диалогового окна курсора, которая применяется для применения кода, который она изменяет, к коду

 

Причина, по которой Cursor применяет изменения непосредственно к вашему коду, заключается в том, что он настроил свою собственную модель таким образом, что LLM выводит diff-формат[3], подобный Git'у. С помощью формата diff можно изменить именно нужный участок кода.

А чтобы все было еще удобнее, Cusor позволяет передавать в разговоре несколько исходных файлов или сканировать весь код проекта (нажав `ctrl + enter`), чтобы извлечь релевантный контент в качестве контекста для получения более точных ответов от большой модели:

Cursor 使用教程(中文版)

Соответствующие файлы могут быть быстро добавлены через соответствующий пользовательский интерфейс, нажатие `ctrl + enter` приведет к диалогу, основанному на коде в кодовой корзине

 

Скорость генерации и скорость индексации очень плавная, так как она будет похожа на JetBrains тем, что индексирует код склада, но ее индексация осуществляется векторно (embeddings, обычный перевод - векторные инкрустации, но мне нравится называть ее векторной), поэтому при индексации может быть удобно делать поиск по сходству для лучшей генерации.

Cursor 使用教程(中文版)

Функция индексации курсора

 

Кроме того, в Cursor есть собственные встроенные ярлыки, о которых я расскажу позже.

В двух словах: Cursor действительно убивает Copilot.

Хотя из моего предыдущего опыта написания VSCode плагинов, причина, почему некоторые вещи Copilot использовать опыт в целом, в основном потому, что как VSCode плагины ограничивают его, но Cursor является магическим редактором, так что многие ограниченные функции могут быть смелыми и свободными, неудивительно, что Cursor может сделать так хорошо.

 

 

Базовое использование курсора

 

монтаж

 

Cursor необходимо скачать с официального сайта: https://www.cursor.com/. После загрузки вам нужно зарегистрироваться, чтобы использовать его, и он поддерживает вход в учетные записи Google и Github.

Cursor работает по подписке. Новые пользователи могут попробовать подписку Pro в течение двух недель. За подписку Pro вам придется платить 20 долларов в месяц (это около ста сорока долларов). Хотя программа и работает, она немного дороговата.

После установки Cursor предложит вам импортировать конфигурацию VSCode при первом запуске, и после этого у вас, по сути, будет версия VSCode с улучшенным искусственным интеллектом.

 

Клавиши быстрого доступа и соответствующие им функции

 

Курсор имеет следующие клавиши быстрого доступа для использования соответствующих функций AI.

 

1. `CTRL/CMD + L`, чтобы открыть диалоговое окно

 

Используйте клавиши `CTRL/CMD + L`, чтобы открыть диалоговое окно в правой части редактора (эта `L` находится справа под клавишами vim, а клавиши-стрелки под клавишами vim - это `h,j,k,l` на клавиатуре в виде ряда клавиш, причем `h` слева так слева, `l` справа так справа, `j` вниз и `k` вверх. (Мне это очень нравится).

Cursor 使用教程(中文版)

Источником изображения является оригинальный текст, диалоговое окно открывается справа, а другие цитируемые источники описаны перед изображением.

 

2. `CTRL/CMD + K' открывает окно генерации

 

С помощью клавиш `CTRL/CMD + K` над местом установки курсора (ведь `k` означает "вверх"! 💕), чтобы открыть окно Generate:

Cursor 使用教程(中文版)

Исходный текст, приведенный выше, открывает диалоговое окно для генерации кода

 

Кстати, когда вы выбираете часть контента, нажатие `CTRL/CMD + K` также откроет соответствующее окно, которое будет генерировать контент, основываясь на контексте вашего выбора:

Cursor 使用教程(中文版)

Генерация избранного контента

 

3. `CTRL/CMD + I' открывает Composer.

 

С помощью `CTRL/CMD + I` вы можете открыть специальную функцию Cursor: Composer, специальную функцию Cursor, которая позволяет вносить изменения в несколько файлов одновременно в одном диалоговом окне.

Чтобы использовать Composer, сначала нужно включить его в настройках курсора, а для этого нужно зайти на страницу его настроек в таком порядке: `Файл > Преференции > Настройки курсора > Функции > Включить Composer`.

Cursor 使用教程(中文版)

Исходный рисунок, настройка Composer

 

Компоновщик", открываемый клавишами `CTRL + I`, представляет собой небольшой интерфейс, работающий по принципу drag-and-drop:

Cursor 使用教程(中文版)

Интерфейс композитора в виде небольшой панели

 

Вы можете ввести пошаговую сложную модификацию, включающую несколько файлов, и Composer сгенерирует все модификации для всех файлов одновременно. В целом, однако, Composer следует использовать целиком, используя кнопку в правом верхнем углу интерфейса с маленькой панелью:

Cursor 使用教程(中文版)

Откройте полный экран программы Composer

 

Слева будет четко указано, где в диалоге кумуляции вы хотите изменить эти файлы, и вы сможете применить соответствующие изменения напрямую.

Это, безусловно, лучший способ **AI-помощи в программировании**: вы можете естественно продолжать описывать свои потребности на естественном языке в одном окне, без необходимости переключаться между несколькими окнами и файлами. Мне кажется, что Cursor - это лучшая форма взаимодействия, которая была исследована.

 

Нотация `@` для удобной контекстной информации

 

Чтобы облегчить предоставление контекстной информации большой языковой модели, в Cursor встроены различные аннотации `@`, которые позволяют легко вводить различные типы контекстной информации в ваш диалог.

Некоторые из примечаний `@` являются общими и могут использоваться во всех диалоговых окнах; некоторые специфичны, и я буду добавлять их по мере упоминания.

Примечание: в Github Copilot есть похожая функция, но она не такая полная, как Cursor.

 

1. Заметка `@Files`, передающая контекст указанных файлов кода

 

Когда вы введете в диалоговое окно примечание `@Files`, Cursor автоматически выведет список поиска в вашем хранилище кода, вы можете ввести имя файла, который хотите импортировать в контекст, а затем нажать кнопку подтверждения, содержимое соответствующего файла будет автоматически инжектировано в контекст:

Cursor 使用教程(中文版)

Заметка `@Files`

 

2. заметка `@Code`, передающая контекст указанного блока кода

 

Заметки `Code` предоставляют более точные фрагменты кода, заметки `@` используются точно так же, появляется соответствующее поле поиска, вы вводите ключевое слово в индексный список, чтобы выбрать соответствующий блок кода.

Идентификация блоков кода определяется LSP вашей среды разработки, что в большинстве случаев является точным:

Cursor 使用教程(中文版)

Заметки `@Code`

 

3. примечание `@Docs` для получения контекста из официальной документации функции или библиотеки

 

Заметка `@Docs` может получить контекст из официальной документации к функции или библиотеке. В настоящее время она может получить контекст только из доступной онлайновой документации. Таким образом, ваша собственная JSDoc-подобная документация бесполезна, если вы не можете получить для нее онлайн-адрес ~ я лично не думаю, что эта функция имеет большое общее назначение.

Cursor 使用教程(中文版)

Заметка `@Docs`, которая обычно используется, когда нужно импортировать документы вручную

 

4. Нотация `@Web` для получения контекста из поискового контента поисковых систем

 

Заметка `@Web` похожа на метод, она по умолчанию направит ваш вопрос сначала в поисковую систему, а затем из результатов поиска контекста извлечения скормит LLM. но поскольку Курсор официально не публиковал прозрачность конкретной реализации метода, он не был отрегулирован, на самом деле результаты использования колеблются от хороших и плохих.

Если у вас возникла проблема и вы хотите не открывать страницу в поисках ошибок или если собственный ответ большой модели не решает проблему, вы можете просто воспользоваться этой заметкой.

 

5. заметка `@Folders`, контекст для передачи информации о каталоге файлов

 

Заметка `@Folders` может предоставлять информацию о каталогах файлов, поэтому если у вас возникнут проблемы с путями, используйте эту заметку, чтобы найти решение в большой модели.

Cursor 使用教程(中文版)

Заметка `@Folders`

 

6. Нотация `@Chat` - нотация, которая может быть использована только в окне генерации кода в файле.

 

Заметка `@Chat`, которая может быть использована только в окне генерации кода внутри файла (открываемом по `CTRL + K`), передает содержимое диалога в диалоговом окне, открытом справа от вас, в качестве контекста для более крупной модели.

Cursor 使用教程(中文版)

Заметка `@Chat`

 

7. Заметка `@Definitions` - заметка, которая может быть использована только в окне генерации кода в файле.

 

Как и примечание `@Chat`, примечание `@Definitions` можно использовать только в окне генерации кода внутри файла. Она передает определения переменных и типов, участвующих в строке кода, на которую вы наводите курсор, в большую модель в качестве контекста, как и примечание `@Code`.

Cursor 使用教程(中文版)

`@Определения` примечание

 

8. Заметка `@Git`, может использоваться только в диалоговых окнах

 

Диалоговое окно - это окно, открываемое клавишами `CTRL + L` и `CTRL + I`. Заметка `@Git` может передавать историю коммитов вашего текущего Git-репозитория большой модели в качестве контекста.

Кажется, что он больше подходит для проверки на благонадежность военных преступников во время совместной работы над кодом.

 

8. примечание `@Codebase`, которое можно использовать только в диалоговом окне для поиска соответствующих файлов для передачи в кодовую базу

 

Примечание `Codebase` на самом деле не очень полезно; вместо того, чтобы прочесывать кодовую базу, оно скорее является контекстным проходом из кодовой базы, чтобы найти нужный файл, т.е. `CodebaseFilter`.

У меня есть ощущение, что он не будет использоваться в обычной разработке, потому что для установки параметров фильтра ему нужно пройти условия фильтрации:

 

Cursor 使用教程(中文版)

В примечании `@Codebase` требуется передать информацию о количестве, моделях, используемых при фильтрации/сортировке, и т. д.

 

Разница между ним и комбинацией клавиш `CTRL + enter` предположительно в том, что вы можете настраивать правила фильтрации для запроса. Но я не думаю, что это очень полезно.

 

 

окончательный

 

Если вы можете себе это позволить, попробуйте использовать Cursor, это действительно хороший опыт (даже если у вас его нет). Не смотрите на мою расшифровку, как будто я ничего не сказал, просто используйте его, и вы получите отличный опыт. Опыт разработки действительно хорош.

Эта статья, как утверждается, является переводом, но, похоже, я просто написал свой собственный опыт использования этой книги ~ так что если вы перейдете к оригинальной статье, то, скорее всего, обнаружите, что здесь нет никакого содержания, соответствующего ей.

Я немного сомневаюсь, стоит ли переводить эту статью в другую категорию. В основном потому, что после просмотра оригинальной статьи я вдохновился на написание собственного простого руководства по ее использованию, но на структуру этой статьи действительно повлияла оригинальная статья. Увы, я разрываюсь.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...