Cursor

Cursorの使い方 #

Cursorは、VS Codeというプログラミング用エディタを基に、AIによるプログラミングをサポートするように作られたエディタです。

セットアップについてはHU Bioinfo Workshop 開発環境セットアップガイドを参照してください。

基本的な使い方は分かったので、CursorのAI機能だけ知りたいという方はCursorのAI機能を参照してください。

現在の推奨AIモデル #

  • Cursor Proプランを前提としています。
  • 高速リクエストが可能な間はどのモデルでもかなりレスポンスが早いです。
  • 低速リクエスト時には顕著にレスポンスが遅くなるモデルがあります。
  • 2025/05/28時点では以下のモデルを推奨します。
  • claude-3.7-sonnet
    • コード生成の精度が高い。
    • レスポンスが非常に遅い。
  • gemini-2.5-Ppo
    • コード生成の精度は3.7-sonnetに比べるとやや低い。
    • レスポンスは低速リクエストだとclaude-3.7-sonnetよりも早いがそれでも数十秒かかる。
  • (claude-4-sonnet)
    • コード生成の精度が非常に高い。
    • 現在はProプランの高速リクエストでなければ使用できない。
    • 期間限定discount中のため、Proプランであれば消費するリクエスト数が0.75と安い。

コマンドパレット #

  • CursorはGraphical User Interface (GUI) なのでクリックしたりドラッグしたりで操作できます。
  • 一方でマウスを使わずにコマンドパレットを使ってキーボードだけで操作することもできます。
  • コマンドパレットはCtrl+Shift+P(win) or Cmd+Shift+P(mac)で開きます。
  • このような操作方法のインターフェースをCommand Line Interface (CLI) といいます。
  • コマンドを覚えていればGUIよりも素早く操作できます。

「フォルダを開く」と「カレントディレクトリ」 #

  • ややこしいですが「フォルダ」も「ディレクトリ」も同じものを指します。
  • 「カレントディレクトリ」とはプログラムが今開いているディレクトリ(=フォルダ)のことを指します。
フォルダとカレントディレクトリ
  • 図で示した場所にカレントディレクトリが表示されています。
  • ただし、「Cursor」が開いているディレクトリと「ターミナル」が開いているディレクトリは実は別の扱いです。
Cursorとターミナルのカレントディレクトリ
  • cdのようにターミナルで開くディレクトリを変更するコマンドを使うとターミナルのカレントディレクトリだけが変わります。
  • Cursorのカレントディレクトリも変えておかないと左側のファイルの表示が切り替わらないので混乱しやすいです。
  • そのため、カレントディレクトリを変えたいときは以下のようにCursorの機能を使って変更しましょう。
open folderの説明
  • カレントディレクトリを切り替える方法は3つあります。
  1. 左上のファイルボタンからフォルダを開くを選択。
  2. コマンドパレット(Ctrl+Shift+P(win) or Cmd+Shift+P(mac))を開いてFile: Open Folderと入力して選択する。
  3. ターミナルにcursor {開きたいディレクトリ名}と入力してEnterを押す。
  • 自分が作業したいディレクトリをしっかりとCursorで開いておくことが重要です。
  • 操作しやすくなり、AIもどこに必要なファイルが保存されているか検索しやすくなります。

ユーザーインターフェース #

Cursorのユーザーインターフェース

1.プライマリサイドバーとアクティビティバー #

Cursorのサイドバー
  • サイドバーとその上部にあるアクティビティバー
  • 画像ではエクスプローラーを選んでいるので、今開いているディレクトリ(=カレントディレクトリ)のディレクトリやファイル一覧が表示されている。
  • アクティビティバーのボタンを押すと機能を切り替えられるがとりあえずエクスプローラー拡張機能だけ知っていれば大丈夫。

2. エディタエリア #

Cursorのエディタエリア
  • エディタエリアが実際にコードを書く場所です。
  • 上部のタブで開いているファイルを切り替えることができます。
  • エクスプローラーのコードファイルを1回クリックでプレビュー表示、2回クリックで編集モードに切り替わります。
  • コードを編集した後はCtrl+S(win) or Cmd+S(mac)で保存します。

3. ターミナルエリア #

Cursorのターミナルエリア
  • ターミナルエリアはコマンドを直接打ち込んで実行する場所です。
  • ctrl+@(win) or cmd+@(mac)でbashというLinux Commandのシェルを開くことができます。
  • 言語ごとにシェルは異なります。複数開いて切り替えることも可能です。
  • ターミナルにカーソルを合わせてctrl+K(win) or cmd+K(mac)を押すとAIによるコマンドの提案を受けることができます。
    • 例えば" すべてのファイルの一覧を表示するコマンドは?“と聞くとls -laというコマンドを提案してくれます。

4. AIチャットエリア #

CursorのAIチャットエリア
  • 右側のサイドバーはAIチャットです。AIに質問したり指示を出したりできます。
  • ctrl+L(win) or cmd+L(mac)でチャットエリアを開くことができます。
  • 詳しい使い方はCursorのAI機能を参照してください。

CursorのAI機能 #

1. コードを書きながらリアルタイムでコードを補完(Cursor Tab) #

CursorのCursor Tab
Cursor Tabの例
  • コードを書きながらリアルタイムでコードを補完する機能です。
  • コードを少し書くと灰色の文字でコードの提案が出てきます。
  • 提案を受け入れるにはTabキー、拒否するにはEscキーを押します。
  • ctrl+→(win) or cmd+→(mac)で単語単位で部分的に提案を受け入れます。
  • 次に修正すべき部分を自動で認識し、Tabで受け入れるとその場所にカーソルが移動します。

2. AI chatでコードを書く #

CursorのAIチャットエリア
  • ctrl+L(win) or cmd+L(mac)でチャットエリアを開くことができます。
  • チャットエリアを開いたときにエディットエリアで編集中のファイルが自動的にコンテクストとして認識されます。

コンテクストとは? #

  • AIが現在の状況を正しく認識するためには、今行っている開発の文脈=コンテクストを伝える必要があります。
  • 人間と同様に自然言語で伝えることもできますし、現在のコードをそのまま渡すことでも伝えることができます。
  • @を使うとわざわざコピー&ペーストをしなくてもファイルごと、もしくはフォルダごとコンテクストとして渡すことが可能です。
  • 実際に指示を出してみます。
CursorのAIチャットエリア
  • ある程度、指示に沿ったコードが提案されたのでApplyを押してみます。
CursorのAIチャットエリア
  • このようにApplyを押すと編集中のファイルに適切な形で適用されます。
  • もしも適用したくない場合はRejectを押し、指示を追加して修正させることもできます。

Agent / Ask / Manual #

CursorのAIチャットエリア
  • Ask:AIへの質問に使います。
    • 特定のコードを読ませてその解説をしてもらう。
    • 特定のパッケージのインストール方法や使い方を聞く
  • Manual:AIにコード生成の指示を出すときに使います。Applyは手動です。
    • 特定の解析を指定してそのコードを書いてもらう。
    • すでにある程度書かれたコードを整理してもらう(リファクタリング)。
    • コードにバグがあった場合は修正してもらう(デバッグ)。
    • コードの説明をコメントで書いてもらう(ドキュメンテーション)。
  • Agent:AIにコード生成だけでなく、ファイルの生成、削除、複数ファイルの編集などを自動で行わせます。

Agentの注意点 #

  • 指示によっては大規模にコードを変更したり大量のファイルを生成したりします。
  • プログラミングに慣れて、変更点を自分で理解できるようにしてから使いましょう。

モデルの切り替え #

  • 使用するAIモデルによってかなり出力に差があります。
  • 基本的に、Proプランの定額範囲で使えるモデルの中で高性能なものを選びましょう。
  • スピードと精度はトレードオフなので好みに応じて高性能なモデルの中から選んでください。
  • 基本的に使用するのは推論モデルのみで問題ありません。
  • 現在の推奨AIモデルもご参照ください。
Cursorのモデル
  • モデル切り替えボタンでモデルを切り替えられます。
  • 表示されないモデルはCursor SettingsのModelsタブから追加できます。

3. インラインチャット #

Cursorのインラインチャット
  • コードの一部だけ変更したいときに便利な機能です。
  • 変更したい部分を選択してctrl + K(win) or cmd + K(mac)を押すとインラインチャットが開きます。
  • 基本的にAI chatと同じですが、長いコンテクストを渡さなくていいような軽微な修正向きです。

AIと一緒にコーディングするコツ #

まずは短くていいからとりあえず質問する #

  • 最初から「上手な質問」「上手な指示」を目指す必要はありません。
  • 一言聞いたら答えが返ってきて、その答えにさらに質問をして・・・人間同士のやりとりと同じです。
  • 課題がでたらまずAIに聞いてみましょう。

適切なコンテクストを渡す #

  • 人間は作業をするときにいろいろな部分に目をやり意識しながらコードを考えます。
  • AIも同じことができますが、「どの部分を見るべきか」を自分で判断することは(まだ)できません。
  • ユーザーがこれからどの部分を修正したいのか、@機能を使って適切に教えてあげることが非常に重要です。

明確な条件を書く #

  • 「~のような機能を実装して」 → 「~の条件を満たす機能を実装して」
  • 「こういう機能があって、さらにこれもあって、加えて~」 → 「以下の条件を満たす機能を実装して。1.~。2.~。3.~。」
  • 書き方に迷ったら短い条件を箇条書きにしてみましょう。自分の考えもまとまりますしAIも理解しやすい形になります。

1回の指示には1つの仕事 #

  • 複数の仕事を同時に与えると、AIも記憶が薄れて一部の指示を間違えたりします。
  • 抽象的な概念は複数の仕事を含みやすいので具体的な指示を心がけましょう。
  • あまり知識がなくて具体化ができない場合は「~のような概念を具体的に実装するには?」などのようにAIに聞いてしまいましょう。