📘

Cursor - Code Editor with AI の良いところ

2023/11/22に公開

TERASS でエンジニアをしているruiewoと言います。
AI搭載エディタのCursorを使ってみたので使い勝手を共有します。
https://cursor.sh

要点

  • VSCodeのフォークなので使い勝手は同じ
  • Privacy Modeが無料版でも使える
  • Zero-Data-Retentionは40ドル/月
  • GitHub Copilotとは共存できるがCopilot Chatとは機能が被る

PrivacyPolicy

最も気になると思うのでAIを使うことに伴うデータの扱いを確認します。
これは本家が短くまとめてくれています。
https://cursor.sh/privacy

If you enable "Privacy Mode" in Cursor's settings, none of your code will ever be stored by us or any third-party (except for OpenAI which persists the prompts we send to them for 30 days for trust and safety).
If you choose to keep Privacy Mode off, we may save prompts / collect telemetry data to improve the product.

privacy modeをONにするとCursorは何も保存しないよ。
ただし、OpenAIは30日間プロンプトを保存するよ。

ではOpenAIに保存されるデータは安全なのか?学習に利用されないか?についてはここを参照。
https://openai.com/enterprise-privacy

We do not train on your data from ChatGPT Enterprise or our API Platform

ChatGPT EnterpriseとAPIからデータに関しては利用しないと書いてあります。

ということでPrivacy Modeで使う分には業務利用にも大きな問題なさそうです。
ただし会社によってこの辺りのAI運用ルールが異なると思いますので、業務利用される場合はご自身の会社に許可をとってから利用してください。

料金

https://cursor.sh/pricing

無料でもGPT-4を50回までは使えます。GPT-3.5でよければ200回まで無料。
お試しに使うのであれば無料版で十分です。

Pro版は500回までfast GPT-4が使え、GPT-4,3.5の利用は無制限です。
fast GPT-4というのはCursorがOpenAIのサーバーで優先して処理されるとのことです。これを使い切ると混雑時のレスポンスが遅くはなるものの依然としてGPT-4を利用できます。

BusinessはPro版に加えてZero-Data Retentionとなります。
Privacyの部分で説明した、OpenAIが30日間プロンプトを保存します、というのを保存しないようにできるということですね。主に企業契約向けです。

またCursorと契約しなくてもOpenAIのAPIキーを渡すことでも利用可能です。(この場合であってもプロンプトはCursorのサーバーを経由するため、PrivacyModeの設定をお忘れなく)
月にGPT-4が50回では足らないが500回も要らない、という場合はAPIキーの方が安上がりかもしれません。

使い方

install

https://cursor.sh

本家からインストールするか、macの人はhomebrewからどうぞ。

brew install --cask cursor

cursorの初回起動時はvscodeから設定をインポートできるので、画面の指示に従ってください。

最初にやること

エディタの見た目をVSCode標準に戻す

vscodeでは左端にあるバーが左パネルの上部に移動しています。
純粋なVSCodeフォークとしてデフォルトでは同じであって欲しいものです。


setting.jsonを開いて以下を追記して通常のvscodeの並びに戻します。

settings.json
  "workbench.activityBar.orientation": "vertical"

Privacy Modeの確認

windowの右上の設定ボタンからCursorの設定画面に入ります。

Privacy ModeがEnabledになっていることを確認します。

chat

chatGPTのようにチャット形式の入力画面が追加されています。
command+Lで呼び出せます。

chatエリアの左下にはGPT-4か3.5の切り替えドロップダウンがあります。料金を気にしない場合は常時4で使いましょう。
右下にはcodebaseを含んで質問するか、単に質問するかについて説明があります。
これだけだとわからないので具体例を示します。

contextに開いているファイルのみ含めた場合


画面下部にApp.tsx Current file とありますよね。
チャットをするにあたってcontextとして開いているファイルの情報も送っています。(特になにもせずに)
しかしGPT的には質問内容にはこのファイルだけでは答えられないため、./routerを見ろと返してきます。

router.tsxを含めた場合

chat画面に@を入力すると参照して欲しいファイルを指定できます。

今回は@router.tsxを含めて質問します。

なんとなく核心に近づいてきましたが、課題は解決しないままです。

なお@で含められるのはローカルのファイルのみならず、@Docsから各ライブラリの公式ドキュメントを参照に含めることもできます。nextjs14など最新DocumentやマイナーなライブラリのDocumentを使いたい場合には該当のURLを渡すことで自動的に参照に含められます。

codebaseを含めた場合

ということでcodebaseを含めて質問します。
特にファイルを選ぶなどの操作はなく、単にcommand+returnを押すだけです。

回答が英語になってしまいましたが、精度が段違いです。
最初の質問である「新規ユーザが作成される経路はどうなっていますか?」に対してほぼ満点の回答が返ってきました。

So, while there isn't a specific route for creating a new user, the application allows for the creation of a new user through the UserPage component and the updateUser function.
※専用のルートはないけどユーザページのupdateUserってfunctionで作成されてますよ。

しかもこのチャットのコメントで青字の箇所は該当コードへのリンクになっています。いちいちファイルを探さなくてもいいので非常に助かります。プロジェクトに途中から参加した時など、他のメンバーの手を煩わせずに解決できます。

command+k

エディター内の任意の箇所からcommand+Kでインラインの入力欄を開けます。
例としてリファクタを命じます。

回答がこちら。これが綺麗なコードかどうかは別にして、AIが提案してくるコードでよければAcceptしてください。ダメならrejectします。

この手の処理はgithub copilotでもできるのでCursorならではって感じはないですね。

エラー時

例えばRustを書いていてこんなエラーに出くわしたとします。

こういう時はひたすらエラーメッセージをコピペしてググってました。(そもそも私はRust書いた事がないので、エラーメッセージを読み解く以前にrustでのエラーの投げ方すら知りません)
そこでおもむろに画面内のAI Fix in Chatというボタンを押してみます。

それっぽい回答が返ってきました。この使い方は単にchatGPTに聞くのと同じですし、github copilot chatでも同じ事ができますが、エディタに内包されていてコピペする手間もないので省力化につながります。

まとめ

  • VSCodeと機能はなんら変わらず特にデメリットはなかった。
  • AI機能が内包されているためエディタからブラウザを往復する頻度が減った。
  • 特にプロジェクトに参加する時や新しいライブラリを使う場合はGPT頼ると時短になるので恩恵が大きい。
  • codebase参照して回答をくれるのが非常に助かる。
  • 入力中の自動補完はgithub copilotと併用した方が開発体験が良い
  • pro版の20ドル/月はこれ単体に払うにはちょっと高い気がする
  • cursorという一般的な名前のせいで検索性が悪い

1週間ほど使ってみましたが、あって助かることはあっても邪魔になることはないため純粋に便利だなと感じました。Cursorのサイト上で自分の利用回数が見られるのですが、ぼちぼち無料回数を超えそうなためライセンスもしくはAPIキーを使って引き続き利用したいと思います。

Terass Tech Blog

Discussion