こんにちは、Spacelyでソフトウェアエンジニアをしているトニー・デュオン(Tony Duong)です。フルスタック開発者として、SpacelyではRuby on RailsとVue.jsを使ってWebアプリケーションを開発しています。
僕と同じように、多くのソフトウェア開発者がAIツールを活用して、日々の生産性を向上させています。この記事では、僕が毎日の業務で活用しているAI搭載コードエディタ「Cursor」について紹介します。どのように使っているのか、そして便利な機能を最大限に活用するためのコツをシェアしたいと思います。
Cursorは、AIによって強化されたコードエディタで、Visual Studio Code(VSCode)をベースに開発されています。 そのため、VSCodeに慣れている人であれば、Cursorへの移行は非常にスムーズで簡単です。
こちらで VSCode から Cursor への移行方法を確認できます
今回は、僕が特に強力だと感じたCursorの6つの機能を紹介します。
- エージェントモードチャット
- エージェントのカスタムルール
- 選択したコードの高速な修正
- ターミナル統合とコマンド実行
- ファイル横断のオートコンプリート
- 自動コミットメッセージの生成
エージェントモードチャット:AIペアプログラミングパートナー
Cursorの最も強力な機能の一つは、エージェントモードチャットです。エージェントと自然言語で話すことで、幅広いコーディングタスクを処理できます:
- コードの編集、ファイルやフォルダの作成
- ドキュメントやWebを検索して解決策を見つける
- ターミナルコマンドの実行
- バグの発見とその修正
- 最適化とリファクタリングの提案
AIエージェントはこれらすべてを、現在のプロジェクト構造、内容、コードパターン、スタイルを理解しながら行います。さらに、AIエージェントは、コンテキスト(ファイル、コード、ターミナルログ、Web上のリソースなど)があると、さらにより良くプロジェクトを理解できます。
Ruby開発のためのカスタムルール
Ruby開発者として、僕はCursorにRubyのベストプラクティスと好みのコーディングスタイルに合わせたルールを設定しています。私が設定した Rubyのベストプラクティスに従って AI は慣用的なパターンに従うコードを生成するため、プロジェクト全体でコードの一貫性を保つことができます。
ルールは「Settings > Rules」で設定できます。テンプレートはこちら で利用できます。
そして、自分のニーズに合わせてさらにカスタマイズすることができます。
以下は、僕のフルスタックRuby/VueJSプロジェクト用のルールの抜粋です。
--- description: globs: *.rb,*.ts,*.js,*.vue alwaysApply: false --- You are an expert in Ruby on Rails, MySQL, Hotwire (Turbo and Stimulus), Vue.js (2.x and 3.x), and Tailwind CSS. # Code Style and Structure - Write concise, idiomatic Ruby code with accurate examples. - Follow Rails conventions and best practices. - Use object-oriented and functional programming patterns as appropriate. - Prefer iteration and modularization over code duplication. - Use descriptive variable and method names (e.g., user_signed_in?, calculate_total). - Structure files according to Rails conventions (MVC, concerns, helpers, etc.). - Write clean, maintainable Vue.js components with clear separation of template, script, and style. - Use Vue.js composition patterns appropriately (Options API for Vue 2.x, Composition API for Vue 3.x when beneficial). # Naming Conventions - Use snake_case for file names, method names, and variables in Ruby/Rails. - Use CamelCase for class and module names in Ruby. ...
選択したコードの修正
選択したコードを修正する機能は、非常に便利で高速です。僕は部分的な変更のためにこの機能をよく利用します。コードの一部を選択し、command+K でチャットを開き、エージェントに変更を指示します。Cursor はコードベース全体を把握しており、コードスタイルを保持しながらコードを変更します。
修正を適用する前
修正を適用した後
ターミナル統合とコマンド実行
Cursor の AI とターミナルの間のシームレスな統合によりさらに生産性が向上します。指示するだけで、Cursor のターミナル連携 AI が git 、テスト、マイグレーションなどのコマンドを生成して実行できます。簡単に言えば、ターミナルでやりたいと思うことは何でもできます。
この機能は特に繰り返し作業に便利です。以下は使用例です。
ファイル横断のオートコンプリート
Cursor のオートコンプリートはコンテキストを認識し、ファイルの関連部分や他のファイルでも変更を提案できます。
関連ファイルまで自動で補完・修正候補を出してくれるので、抜け漏れが減りますし、探す作業・気持ちの上での負担が減ります。
例えば、下記のファイルで、僕は User クラスに新しい属性 gender を追加しました。その結果、user.rb の適切な場所に gender を追加することを提案するだけでなく、user_spec.rb ファイルでも gender に関する修正を提案してくれます。
自動コミットメッセージ
コミットメッセージを書くという一見簡単なタスクでさえ、Cursor によってより効率的になります。AI は各コミットの変更を分析し、何が修正されたかを正確に反映したコミットメッセージを生成します。
小さな改善ですが積み重なると大幅な時間節約になります。スピード優先の開発の時期でもエンジニアの負担が少なく、情報量が多いコミットメッセージを残せます。
結論:開発の未来を受け入れる
Cursorは僕のソフトウェア開発へのアプローチを根本的に変えました。それは単にコードをより速く書くことについてではありません。構文や退屈な繰り返しコーディングタスクと格闘するのではなく、より高いレベルで考え、問題解決に集中することができるようになりました。
ここで説明した機能は、Cursorが提供する全てではありませんが、確実に僕の日常作業で不可欠なものになっています。
最後に、スペースリーでは一緒に働いてくださる方を大募集中です。 少しでもご興味がある方は上記よりご連絡ください!