diff --git a/README.md b/README.md index 5bbf012..2a0be4d 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ | 2024/10/19 | 「AIエディタCursor完全ガイド」出版+重版&創業30周年記念Tシャツプレゼント・キャンペーン情報の掲載。 | | 2024/10/23 | 高速プレミアムモデルのリストに「claude-3-5-sonnet-20241022」を追加。 | | 2024/10/29 | 第3章にチャットからのファイル作成が可能になった点を追記。 | +| 2024/12/02 | 0.43 に対応。書籍の Interpreter Mode を用いた手順は Composer の agent をお使いください。 | ## 📕 このリポジトリの構成 diff --git a/chapter1/README.md b/chapter1/README.md index d25465a..f7b4405 100644 --- a/chapter1/README.md +++ b/chapter1/README.md @@ -13,6 +13,8 @@ 2. gpt-4o 3. claude-3.5-sonnet 4. claude-3-5-sonnet-20241022 + 5. claude-3.5-haiku +- claude-3.5-haiku は1回のプレミアムリクエストの1/3としてカウントされます。 - Pro/Business プランに含まれていない上限回数、追加料金のあるモデルは、次の表のようになっています(2024/10/17時点) ![](../images/Pricing_Details_table.png) - GPT-4o mini は料金体系上 cursor-small と同じ扱い(Pro 以上は回数制限なし)になっています(コストパフォーマンスが良いので、活用の価値が高い)。 diff --git a/chapter3/README.md b/chapter3/README.md index 4bdc4ca..b5ad3b3 100644 --- a/chapter3/README.md +++ b/chapter3/README.md @@ -4,25 +4,17 @@ ## 📘 3.1 Chat(AIチャット機能) -## 📘 ▼チャットモードの切り替え / 3.2 Interpreter Mode +## 📘 ▼チャットモードの切り替え 🌟New🌟 -チャットモードのプルダウンが表示されない場合、P.127を参照して「LONG CONTEXT CHAT (BETA)」の設定を「enabled」(有効)にしてください。 +Interpreter Mode はバージョン 0.40 で、Long Context Chat は 0.43 で廃止になり、チャットモードの切り替えの機能は廃止になりました(プルダウンは表示されません)。 +- Interpreter Mode はより強化された機能として、Composer の agent モードが実装されました。以降の章で、Interpreter Mode を使用している場面では、Composer agent をお使いください。Composer agent については、[第6章](../chapter6/README.md)の説明をご覧ください。 +- Long Context Chat 廃止後、各モデルのコンテキストウィンドウまでチャットや Composer がデータを送受信できるかについては公式なアナウンスがないため、現時点では不明です。 -![](../images/long_context_chat.png) - -Interpreter Mode は、0.40 からチャットモードのプルダウンで表示されなくなりましたが、Long Context Chat の設定が「disabled」(無効)の状態だと、選択できるチャットモードが Normal Chat しかなくなるためか(選択不要)、プルダウン自体の表示がなくなるようです。 - -Interpreter Mode が表示されなくなったことについては、廃止のアナウンスはありませんが、公式フォーラムで Interpreter Mode の不調に対して Composer で代替するアドバイスが Anysphere メンバーから付いていることから、廃止になった可能性があります。 - -「追補」に記載した Composer はファイルの作成ができるので、大きくなったファイルのモジュール分けなどのタスクは代替が可能です。一方、生成されたコードの実行を代替する手段はないため、Normal Chat モードで生成したコードをファイトして保存して手動で実行する操作が必要になります。 - -以降の章で、Interpreter Mode を使用している場面では、この点を踏まえてお読み替えください。 - -## 📘 モデル選択 🌟New🌟 +## 📘 モデル選択 モデル選択のプルダウン上に「Search...」欄が追加され、モデル名の部分一致で検索ができるようになりました。多数のモデルのリストからモデルを切り替える際に便利です。この操作は、CHAT、Command K、Composerのいずれでも可能です。 -![](models_search.png) +![](../images/models_search.png) ## 📘 チャット画面の刷新 @@ -39,11 +31,11 @@ Interpreter Mode が表示されなくなったことについては、廃止の 現状、Composer と異なり、複数ファイルに対して一括更新を確定することはできません。各ファイルごとに「Apply」操作を実行する必要はあります。 -また、チャットの回答欄下に表示される箱型アイコンをクリックすると、チャットの内容を継承した Composer を呼び出すことができます。 +また、チャットの回答欄下に表示される「Copy Message」ボタンをクリックすると、チャットの回答内容をコピーすることができます。 -![](../images/goto_composer.png) +![](../images/CopyMessage.png) -「WILL USE」「USED」欄で表示されていた参照情報が、更新対象ファイルと並列で表示されるようになったようです(見分けが難しくなったかもしれません)。 +「WILL USE」「USED」欄で表示されていた参照情報が、更新対象ファイルと並列で表示されるようになりました。 ![](../images/chat_ref.png) @@ -79,6 +71,21 @@ Interpreter Mode が表示されなくなったことについては、廃止の > We have made slight improvements to Debug with AI and added back @Lint Errors in Chat. - https://changelog.cursor.com/?nightly=true#042---composer-history-lint-errors-vs-code-1931- + +## 📘「@Recommended参照」 + +プロンプトと意味的な関連付けを検索して、関連性の高いファイルのリストが表示されます。 +CHAT と COMPOSER 使用が可能です。 + +1. @Recommended を指定します(インデックスが作成済みである必要があります)。 + + ![](../images/Recommended1.png) + +2. 表示されたファイルから参照させたいファイルを指定します。 + + ![](../images/Recommended2.png) + + ## 📘「Apply」、「Copy」、 「Reply」ボタン - 0.40 でボタンの並び順が変更になっています。 diff --git a/chapter4/README.md b/chapter4/README.md index a79a3c3..d12c947 100644 --- a/chapter4/README.md +++ b/chapter4/README.md @@ -12,36 +12,20 @@ また、インデックスされた日付、時刻も表示されるようになりました。 -### 📗 Composer -![](../images/composer_setting_context.png) +### 📗 Chat & Composer🌟New🌟 -- enabled / disenabled:Composer のオン、オフの切り替え(デフォルト有効) -- Always keep composer in bound:フローティング Composer を移動してもウィンドウの四辺から一定の処理を保つようになります。 -- Cmd+P for file picker:Composer 内で ⌘+P(macOS)またはCtrl+P(Windows)ショートカットキーでファイルピッカーを表示することができます。 -- Show suggested files:Cursor が開くことを予測したファイルのリストが表示されます(薄い文字で表示されます)。 -- Collapse input box pills in pane:入力ボックスのコード、テキストを折りたたみ表示してスペースを節約します。 -- Composer persistence:Cursorの再起動をまたいで履歴を保存します。 -- Iterate on lints (BETA):lintエラーがある場合、コンポーザーは修正を再試行します。 -- Composer bar anchor:フローティング Composer がデフォルト表示される位置を設定します(Left / Center / Right から選択)。 -- Auto-apply to files outside context:コンテキスト外のファイルへの自動的な適用のオン/オフ切り替え(ハルシネーション防止のための設定)。 - -### 📗 Chat - -![](../images/chat_setting.png) - -- Narrow scrollbar:AIペインのチャットエリア右横のスクロールバーの横幅が小さくなります。 -- Auto scroll chat:AIからの回答の長さに応じて自動的にスクロール表示します。その時プロンプト入力欄は下部に固定されます。 +Chat と Composer の設定が統合されました。 +「コードベースとチャットし、コンポーザーで複数のファイルを一括で編集できます」 -![](../images/autoscrollchat.png) +![](../images/Chat_Composer_Setting.png) -- Show chat history:プロンプト入力欄の下にチャット履歴が表示されます。 - -![](../images/chat_history.png) - -- Show suggested files:ファイルピッカーの右横にお勧めのファイルが表示されます(以下の図の右2つはお勧めされたファイル)。 - -![](../images/suggestedfiles.png) +- Enable composer agent stickiness:コンポーザーエージェントの継続性を有効化(有効にすると、通常モードまたはエージェントモードの選択が新しいコンポーザーの会話でも維持されます) +- Auto-scroll to bottom:自動スクロール(新しいメッセージが生成された際、コンポーザーペインを自動的に最下部までスクロールします) +- Auto-apply to files outside context:コンテキスト外のファイルへの自動適用(コンポーザーによる変更を、現在のコンテキスト外のファイルにも自動適用することを許可します) +- Collapse input box pills in pane or editor:ペインまたはエディタの入力ボックスのピルを折りたたむ(スペースを節約するため、コンポーザーペインまたはエディタ入力ボックスのピルを折りたたみます) +- Render pills instead of blocks:ブロックの代わりにピルを表示(コンポーザーのコードブロックをコードブロックとして表示せず、ピルとして折りたたみます) +- Iterate on lints (BETA):lintエラーがある場合、コンポーザーは修正を再試行します。 ### 📗 Cursor Tab @@ -58,10 +42,9 @@ Copilot++ は Cursor Tab という呼称に変わりました。 ## 📘 4.4 ▼INTERPRETER MODE(BETA) -本書で何度もご紹介した Interpreter Mode は、0.40 からチャットモードのプルダウンで表示されなくなりました。廃止になったとの公式なアナウンスはありませんが、公式フォーラムで Interpreter Mode の不調に対して Composer で代替するアドバイスが Anysphere メンバーから付いていることから、廃止になった可能性があります。 -Composer はファイルの作成ができるので、大きくなったファイルのモジュール分けなどのタスクは代替が可能です。一方、生成されたコードの実行を代替する手段はないため、Normal Chat モードで生成したコードをファイトして保存して手動で実行する操作が必要になります。 +本書で何度かご紹介した Interpreter Mode は、0.40 からチャットモードのプルダウンで表示されなくなりました。 -以降の章で、Interpreter Mode を使用している場面では、この点を踏まえてお読み替えください。 +- Interpreter Mode はより強化された機能として、Composer の agent モードが実装されました。以降の章で、Interpreter Mode を使用している場面では、Composer agent をお使いください。Composer agent については、[第6章](../chapter6/README.md)の説明をご覧ください。 ## 📘 4.5 Help diff --git a/chapter6/README.md b/chapter6/README.md index d9e139c..e2cf0e7 100644 --- a/chapter6/README.md +++ b/chapter6/README.md @@ -2,76 +2,81 @@ ## 📘 追補 Composer -### Composer Notepads - -0.41 で Composer のコントロールパネルに「Composer Notepads」機能が追加されました(0.40 で Projects と呼ばれていた機能を置き換えるものです)。 - -「Notepads」を作ると、そのプロジェクトに属する複数の Composer 間、さらには CHAT 間まで、参照ファイルやプロンプト履歴の内容を共有することができます。 - -操作は、以下の手順となります。 - -1. コントロールパネル左下の「Create New」ボタンをクリックします。 - -![](../images/new_notepads.png) +COMPOSER は CHAT と並んで AI ペインに表示されるようになりました。 -2. ポップアップされた選択肢から「New Notepad」をクリックします。 -(または、コントロールパネル左上「Notepads」欄の右端にある+アイコンをクリックします) +![alt text](../images/ComposerAIpane.png) -![](../images/new_notepads2.png) - -3. Notepads のタイトルを入力して、「Creat」ボタンをクリックします。 - -![](../images/create_new_notepad.png) - -3. プロジェクト画面中央の「Type your thoughts, use @ to mention files」欄にプロジェクトの考え、参照したいファイルを @ 記号の指定で入力します。 - -![](../images/notepads_thoughts.png) +---- -4. Notepads 画面右下の「Add context」の+ボタンからファイルピッカーを呼び出して、参照ファイルを登録できます。 +### Composer agent -![](../images/add_context.png) +COMPOSER では、normal / agent モードの切り替えができるようになりました。 + - normal:複数ファイル一括更新を行える(従来の)Composer の動作を行うモード + - agent:一連のタスクの自律動作を行うエージェントモード -5. Notepads 画面の右上にある「Use in Composer」ボタンをクリックすると、Notepads を参照する Composer が表示されます。 +![](../images/Composer_mode.png) -![](../images/use_in_composer.png) + Cmd(⌘)+.(ピリオド)のショートカットキーによって、モードの切り替えることが可能です。 -![](../images/composer_with_notepads.png) +Composer agent の操作手順は以下のようになります。 -6. Notepads 画面の右上にある「Use in AI chat」ボタンをクリックすると、Notepads を参照する CHAT が表示されます。 +1. agent 部分をクリック、またはショートカットキーで選択(ハイライト表示)されている状態にする。 +2. プロンプトを入力。 +3. submit ボタンをクリック(またはEnterキーをタイプ)。 +4. Composer agent が自律処理を行います。 +5. コマンドの実行が必要な場合はユーザに確認を求めてきます(セキュリティ担保のため)。 +6. コマンドの実行内容を確認して「Run command」ボタンを実行します。 + ![](../images/Composer_Command.png) +7. タスクを完了すると、自律処理を終了します。 -![](../images/use_in_aichat.png) -![](../images/chat_with_notepads.png) +書籍の Interpreter Mode を用いた操作の部分は Composer の agent で置き換えが可能です。 +Interpreter Mode の「auto-execute」ボタンを実行する代わりに、Composer agent を使って操作を進めてください。 + +注)Composer agent は現時点では Anthropic モデル(Claude)のみをサポートしています(他のモデルだと「Unsupported model」表示となります)。 ---- -- Notepads はチャットや Composerから @ によるシンボル参照も可能です。以下のスクリーンショットは指定の手順と結果の画面です。 - -![](../images/symbol_to_notepads_before.png) +### Composer Notepads -![](../images/symbol_to_notepads_after.png) +0.41 で Composer のコントロールパネルに「Composer Notepads」機能が追加されました(0.40 で Projects と呼ばれていた機能を置き換えるものです)。 ----- +「Notepads」を作ると、そのプロジェクトに属する複数の Composer 間、さらには CHAT 間まで、参照ファイルやプロンプト履歴の内容を共有することができます。 -### Composer の AI ペイン内表示 +操作は、以下の手順となります。 -Composer を AI ペイン内に表示することができるようになりました。 -Composer 内のメニュー操作か、⌘+D、または Ctrl++D ショートカットで切り替えることができます。 +1. 左側のサイドバー(エクスプローラービュー)の最下部「NOTEPADS」セクションをクリックします。 + + ![](../images/Notepads_explorer.png) -![](../images/Composer_bar.png) +2. 「NOTEPADS」セクションにカーソルを合わせると表示される+をクリックします。 + + ![](../images/Notepads_Icons.png) -![](../images/Composer_pane1.png) +3. 「Type your thoughts, use @ to mention files」欄にプロジェクトのカスタムインストラクション、参照したいファイルを @ 記号の指定で入力します。 + + ![](../images/New_Notepads_inEditer.png) -好みで AI ペイン内の表示位置を変更することもできます(項目名をドラック)。 +4. Notepads 画面右下の「Add context」の+ボタンからファイルピッカーを呼び出して、参照ファイルを登録できます。 + + ![](../images/add_context.png) -![](../images/Composer_pane2.png) +5. Notepads 名はウィンドウ上の鉛筆アイコンをクリックして、変更することができます。 + + ![](../images/Notepads_Rename.png) -AI ペイン内の Composer は、基本的な操作方法は従来と変わりませんが、プロンプト欄が下部に固定される点が特徴です。多くのユーザーが横長のモニター環境を使用していることを考慮すると、左側に表示位置を固定することで、チャットのやり取りをより長く、効率的に確認できるという大きな利点があります。また、表示位置を変更しても、ファイルやフォルダの作成などの Composer の核心的な機能は全て維持されます。この新しい表示オプションにより、ユーザーはより柔軟かつ効果的に Composer を活用できるようになりました。 +6. CHAT、COMPOSER から Notepads を参照するには、ファイルピッカーを使います。 + + ![](../images/Notepad_ex1_chat.png) -![](../images/Composer_AIpane_test.png) + ![](../images/Notepad_ex1_composer.png) + + 参照が設定された例 + + ![](../images/Notepad_ex1.png) ---- -### Composer の プロンプト再送信対応 🌟New🌟 +### Composer の プロンプト再送信対応 0.42 でプロンプトの再送信に対応しました。送信済みプロンプト入力欄の横にある鉛筆アイコン(「Edit message」)をクリックすると、送信済みプロンプト欄にカーソルが入ります。必要な編集、モデル選択などを行ってから、プロンプトを再送信できます(送信済みプロンプト入力欄をクリックするだけでも編集可能になります)。 @@ -79,34 +84,24 @@ AI ペイン内の Composer は、基本的な操作方法は従来と変わり ---- -### Composer コントロールパネルのウィンドウ化 - -設定の Bate タブ内の「WINDOW CONTROLPANELIBETA)」を有効(enabled)にすると、Composer コントロールパネルを独立したウィンドウとして表示することができるようになりました。 - -![](../images/beta_settings.png) - -コントロールパネル右上にある「Open in new window」ボタンをクリックします。 - -![](../images/open_in_new_window.png) - -Composer コントロールパネルが独立したウィンドウとして表示された状態の例です。 - -![](../images/NotePadWindow.png) - -従来は、ほぼ全画面を覆うモーダルウィンドウであったため、エディター画面や過去のチャット履歴を参照しながらの操作ができない不便さがありましたが、操作性が大きく改善されました。また、0.42 で Composer チャット履歴も永続的に保存されるようになりました。 - ----- - ### 0.41 その他の変更点 - Composer とチャットが複数の画像を添付したプロンプトに対応しました。 - Composer の「Diff vlew」画面でコードの編集が可能になりました。 - Composer を Esc キーで閉じることができます(Composer が選択されていない時は、⌘+i、または Ctrl+i キーで選択し直してから実行)。 -### 0.42 その他の変更点 🌟New🌟 +### 0.42 その他の変更点 - Composer チャット履歴も永続的に保存されるようになりました(Cursor再起動後も以前の履歴が失われない)。 +### 0.43 その他の変更点 🌟New🌟 + +- Gitコミットメッセージの生成:ソース管理画面のコミットメッセージ欄の右横に星形アイコンが追加され、クリックすると AI が更新内容からコミットメッセージを生成されるようになりました。 + + ![](../images/commit_message1.png) + + ![](../images/commit_message2.png) + ---- 驚くべき速度で進化を続ける Cursor。著者はサンフランシスコで開催された Cursor User Meetup(2024/7/16)に参加しましたが、Anysphere 開発陣はユーザのニーズに非常に敏感です。会う人、会う人に「Composerはどう?」、「何を改善して欲しい?」と質問を受けました。日本の Cursor ユーザの皆様も、公式フォーラムなどを通してニーズ情報を伝えて、より良い Cursor を作るコミュニティの一員になりましょう。 diff --git a/images/Chat_Composer_Setting.png b/images/Chat_Composer_Setting.png new file mode 100644 index 0000000..fb509db Binary files /dev/null and b/images/Chat_Composer_Setting.png differ diff --git a/images/ComposerAIpane.png b/images/ComposerAIpane.png new file mode 100644 index 0000000..c31c4b8 Binary files /dev/null and b/images/ComposerAIpane.png differ diff --git a/images/Composer_Command.png b/images/Composer_Command.png new file mode 100644 index 0000000..a7d710a Binary files /dev/null and b/images/Composer_Command.png differ diff --git a/images/Composer_mode.png b/images/Composer_mode.png new file mode 100644 index 0000000..33aba57 Binary files /dev/null and b/images/Composer_mode.png differ diff --git a/images/CopyMessage.png b/images/CopyMessage.png new file mode 100644 index 0000000..edf70ae Binary files /dev/null and b/images/CopyMessage.png differ diff --git a/images/New_Notepads_inEditer.png b/images/New_Notepads_inEditer.png new file mode 100644 index 0000000..0238cfd Binary files /dev/null and b/images/New_Notepads_inEditer.png differ diff --git a/images/Notepad_ex1.png b/images/Notepad_ex1.png new file mode 100644 index 0000000..293666e Binary files /dev/null and b/images/Notepad_ex1.png differ diff --git a/images/Notepad_ex1_chat.png b/images/Notepad_ex1_chat.png new file mode 100644 index 0000000..466c4c8 Binary files /dev/null and b/images/Notepad_ex1_chat.png differ diff --git a/images/Notepad_ex1_composer.png b/images/Notepad_ex1_composer.png new file mode 100644 index 0000000..82d7a52 Binary files /dev/null and b/images/Notepad_ex1_composer.png differ diff --git a/images/Notepads_Icons.png b/images/Notepads_Icons.png new file mode 100644 index 0000000..9108f93 Binary files /dev/null and b/images/Notepads_Icons.png differ diff --git a/images/Notepads_Rename.png b/images/Notepads_Rename.png new file mode 100644 index 0000000..2067378 Binary files /dev/null and b/images/Notepads_Rename.png differ diff --git a/images/Notepads_explorer.png b/images/Notepads_explorer.png new file mode 100644 index 0000000..5f04bd1 Binary files /dev/null and b/images/Notepads_explorer.png differ diff --git a/images/Recommended1.png b/images/Recommended1.png new file mode 100644 index 0000000..a859a63 Binary files /dev/null and b/images/Recommended1.png differ diff --git a/images/Recommended2.png b/images/Recommended2.png new file mode 100644 index 0000000..3196443 Binary files /dev/null and b/images/Recommended2.png differ diff --git a/images/commit_message1.png b/images/commit_message1.png new file mode 100644 index 0000000..f1e567c Binary files /dev/null and b/images/commit_message1.png differ diff --git a/images/commit_message2.png b/images/commit_message2.png new file mode 100644 index 0000000..6e4d5a9 Binary files /dev/null and b/images/commit_message2.png differ diff --git a/chapter3/models_search.png b/images/models_search.png similarity index 100% rename from chapter3/models_search.png rename to images/models_search.png