Tab は補完に特化した Cursor のモデル。Tab を受け入れたり、Esc で提案を拒否したりして意図を伝えるほど、どんどん賢くなる。Tab なら、こんなことができる:
  • 複数行をまとめて変更
  • 足りない import 文を追加
  • 連携した編集のために、ファイル内・ファイル間をジャンプ
  • 直近の変更、linter エラー、受け入れた編集に基づく提案を取得

サジェスト

テキストを追加すると、補完は半透明のゴーストテキストとして表示される。既存コードを変更する場合は、現在行の右側に差分ポップアップとして表示される。
サジェストは Tab で受け入れ、Esc で却下、Ctrl+Arrow-Right で単語単位で受け入れられる。入力を続けるか、Esc を押してサジェストを非表示にできる。

ファイル内ジャンプ

Tab はファイル内で次に編集しそうな位置を予測してジャンプを提案する。編集を受け入れたら、Tab をもう一度押して次の位置へジャンプ。

ファイル間ジャンプ

Tab はファイルをまたいだコンテキスト対応の編集も予測する。クロスファイルのジャンプが提案されると、下部にポータルウィンドウが表示される。

自動インポート

TypeScript と Python では、Tab が不足している import 文を自動で追加する。別ファイルのメソッドを使うと、Tab がインポートを提案し、受け入れるとフローを崩さずに追加される。 自動インポートが動かない場合:
  • プロジェクトに適切な言語サーバーまたは拡張機能があるか確認
  • Ctrl+. でテストして、Quick Fix の候補にインポートが出るか確認

Peek での Tab

Tab は Go to DefinitionGo to Type Definition の peek ビューでも使える。関数シグネチャの変更や呼び出し箇所の修正に便利。
Vim では gd と組み合わせて定義へジャンプし、編集して参照を同一フローで解決できる。

部分的な受け入れ

Ctrl+Arrow-Right で1語ずつ受け入れるか、editor.action.inlineSuggest.acceptNextWord でキーバインドを設定。場所: Cursor SettingsTab

設定

設定説明
Cursor Tab直近の編集に基づき、カーソル付近でコンテキスト対応の複数行サジェストを表示
Partial AcceptsCtrl+Arrow-Rightでサジェストの次の単語だけを確定
Suggestions While Commentingコメントブロック内でも Tab を有効化
Whitespace-Only Suggestions余白や整形のみを変更するサジェストを許可
ImportsTypeScript の自動インポートを有効化
Auto Import for Python (beta)Python プロジェクトの自動インポートを有効化

切り替え

ステータスバー(右下)から次を実行できる:
  • スヌーズ: 指定した時間だけ Tab を一時的に無効化
  • グローバルで無効化: すべてのファイルで Tab を無効化
  • 拡張子ごとに無効化: 特定の拡張子(例: Markdown や JSON)で Tab を無効化

よくある質問

Cursor SettingsTab Completion に進んで、Trigger in comments のチェックを外せば、コメント内でのTabを無効化できるよ。
Keyboard ShortcutsAccept Cursor Tab Suggestions を使って、サジェストの受け入れ/拒否を好きなキーにリマップできるよ。
Cursorは関連するコードの一部をコンテキストウィンドウに含めて送るよ。コンテキストは暗号化されてバックエンドに送信され、バックエンドで復号して安全に読み取られる。その後、Cursor Tabモデルがコードサジェストを生成し、エディタに表示するためにクライアントへ返されるんだ。