Skip to content

Cursor AI ショートカット完全ガイド:開発効率を飛躍させる必須テクニック

AI時代のプログラミングにおいて、適切なツールの使い方を習得することは極めて重要です。本記事ではCursor AIのコアショートカットと活用テクニックを詳細に解説します。

コアショートカット

1. AIインタラクションショートカット

  • AIチャット(Command/Ctrl + L)

    • AIチャットウィンドウを開く
    • AIアシスタントへの質問
    • コード解説の取得
    • コード最適化の議論
  • インライン編集(Command/Ctrl + K)

    • 選択コードの即時修正
    • AI改善提案の取得
    • リアルタイムコード最適化
  • コンポーザー関連

    • コンポーザー起動(Command/Ctrl + I):複雑なAI補助タスクの処理
    • フルスクリーンコンポーザー(Command/Ctrl + Shift + I):広い作業領域の確保

2. コード補完ショートカット

typescript
// コード補完の例
function calculateDiscount(price: number, rate: number) {
  // "return price"入力後、AIがインテリジェント補完
  return price * (1 - rate) // Tabで提案を適用
}

// ショートカット:
// - Tab:提案を適用
// - Esc:提案を拒否
// - Command/Ctrl + →:部分的な適用

実践応用テクニック

1. AIチャットベストプラクティス

typescript
// Command/Ctrl + Lでチャットを開く
// サンプルダイアログ:
User: 'このコードのパフォーマンスを最適化する方法は?'

function processLargeArray(items: any[]) {
  return items.filter(item => item.active)
    .map(item => item.value)
    .reduce((sum, value) => sum + value, 0)
}

// AI回答:
// "以下の最適化を提案します:
// 1. シングルパス処理
// 2. 型定義の追加
// 3. エラーハンドリングの実装"

// 最適化後のコード:
function processLargeArray(items: Item[]): number {
  try {
    return items.reduce((sum, item) => {
      if (item.active) {
        return sum + (item.value ?? 0)
      }
      return sum
    }, 0)
  }
  catch (error) {
    logger.error('配列処理エラー', { error })
    return 0
  }
}

2. インライン編集テクニック

typescript
// Command/Ctrl + Kでインライン編集を開始
// 修正対象コードを選択:
function handleError(error) {
  console.log(error)
}

// 要求:"エラーログと型定義を追加"
// AIが生成した改善版:
function handleError(error: Error): void {
  logger.error('操作失敗', {
    error: error.message,
    stack: error.stack,
    timestamp: new Date().toISOString()
  })

  Sentry.captureException(error)
}

3. コンポーザー活用テクニック

typescript
// Command/Ctrl + Iでコンポーザーを起動
// サンプルプロンプト:
// "ユーザー認証APIエンドポイントを作成し、以下を含める:
// - 入力バリデーション
// - エラーハンドリング
// - ロギング
// - JWT認証"

import { signToken } from '@/lib/jwt'
import { createHandler } from 'next-api-handler'
// コンポーザーが生成したコード:
import { z } from 'zod'

const loginSchema = z.object({
  email: z.string().email(),
  password: z.string().min(8)
})

export const handler = createHandler()
  .use(validateBody(loginSchema))
  .post(async (req, res) => {
    try {
      const { email, password } = req.body

      const user = await auth.verifyCredentials(email, password)
      const token = await signToken(user)

      logger.info('ユーザーログイン成功', { userId: user.id })

      return res.json({ token })
    }
    catch (error) {
      logger.error('ログイン失敗', {
        error: error.message,
        email
      })

      if (error instanceof AuthError) {
        return res.status(401).json({
          error: 'ユーザー名またはパスワードが不正です'
        })
      }

      return res.status(500).json({
        error: 'サーバーエラー'
      })
    }
  })

効率化向上テクニック

1. プロンプト最適化

より良いAIレスポンスを得るために:

  • 具体的に明示:要件とコンテキストを明確化
  • ステップ分け:複雑タスクを小ステップに分割
  • 例示:期待する出力形式を提示
  • 制約条件の指定:技術スタックと制限条件を明示

2. ワークフロー最適化

typescript
// サンプルワークフロー:コードレビュー
// 1. Command/Ctrl + Lでチャットを開く
// 2. コードを貼り付けレビューを依頼
// 3. Command/Ctrl + Kで提案を即時適用

// オリジナルコード
function processData(data) {
  if (data.status = 'active') {
    return data.process()
  }
}

// AIレビュー提案
// 1. 代入演算子の修正
// 2. 型定義の追加
// 3. null値の処理
// 4. エラーハンドリングの追加

// 最適化後のコード
function processData(data: ProcessData): Result | null {
  try {
    if (data?.status === 'active') {
      return data.process?.() ?? null
    }
    return null
  }
  catch (error) {
    logger.error('データ処理エラー', { error })
    return null
  }
}

3. ショートカット組み合わせテクニック

よく使う組み合わせ:

  1. コード生成フロー

    • Command/Ctrl + I:コンポーザー起動
    • 要件を記述
    • Tab:生成コードを適用
    • Command/Ctrl + K:微調整
  2. コード最適化フロー

    • Command/Ctrl + L:チャット開始
    • コードを貼り付け最適化を依頼
    • Command/Ctrl + K:改善提案を適用
  3. 問題解決フロー

    • Command/Ctrl + L:問題を記述
    • Command/Ctrl + I:解決策を生成
    • Command/Ctrl + K:実装詳細を調整

カスタマイズ設定

1. ショートカットカスタマイズ

設定でショートカットをカスタマイズ可能:

json
{
  "keybindings": {
    "ai.chat": "cmd+l",
    "ai.inline": "cmd+k",
    "ai.composer": "cmd+i",
    "ai.composer.fullscreen": "cmd+shift+i"
  }
}

2. AI動作設定

json
{
  "cursor.ai": {
    "completion": {
      "enabled": true,
      "delay": 100,
      "threshold": 0.8
    },
    "chat": {
      "model": "gpt-4",
      "temperature": 0.7
    },
    "inline": {
      "autoSuggest": true,
      "language": "ja-JP"
    }
  }
}

よくある問題解決

  1. ショートカットの競合

    • 他プラグインの設定を確認
    • 競合するショートカットを再マッピング
    • 使用頻度の低い機能のショートカットを無効化
  2. AIレスポンスの最適化

    • より多くのコンテキスト情報を提供
    • 具体的な指示を使用
    • AIモデルパラメータを適切に調整

まとめ

Cursor AIのショートカットとテクニックを習得することで:

  • コーディング速度の向上
  • コード品質の向上
  • 問題解決プロセスの簡素化
  • 開発ワークフローの最適化

これらのショートカットとテクニックを実践で活用し、開発効率を飛躍させましょう。習熟には練習が不可欠です!

関連記事

MIT ライセンスで公開