Cursorとは
Cursorとは、AIによる開発支援機能を搭載したコードエディタです。VS Codeからフォーク(複製)して作られているので、VS Codeと同じ感覚で使用することができます。
Cursorの特長
Cursorには様々なAIによる支援機能がありますが、今回は代表的な機能をいくつか使ってみようと思います。
- Command + Kを使用した、自然言語によるコードの記述
- Chatを使用した、自然言語によるコードの記述
- @Symbolsを使用したメンション機能
- Docs機能を使用した、外部ドキュメントの読み込み
Command + Kを使用した、自然言語によるコードの記述
例として、chat機能を使用して、Pythonでの書籍管理システムの実装を命令してみます。今回はsample.pyに対して、入力された数値に対して10%の消費税を計算をするコードの記述を命令してみます。sample.pyを開いた状態で、Windowsの場合は「Ctrl+K」のショートカットで入力欄が表示可能です。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-1024x480.png)
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-1-1024x494.png)
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-2-1024x496.png)
コードに問題がなければ、Acceptすることでファイルへの反映が可能です。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-3-1024x498.png)
上記のように、簡単なプログラムであれば瞬時に実装が可能です。また、実装済みのコードへの変更についても、同じくCommand+Kの機能で実現できます。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-4-1024x496.png)
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-5-1024x489.png)
Chatを使用した、自然言語によるコードの記述
Chat機能を使用して、Command+Kと同じく自然言語によるコードの記述を行うことが可能です。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-6-1024x502.png)
例として、書籍管理システムを実装してみます。book_management.pyファイルを作成し、Windowsの場合は「Ctrl+L」でChat機能の使用が可能です。また、プルダウンより使用するモデルの選択も可能です。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-7-1024x502.png)
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-8-1024x501.png)
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-9-1024x498.png)
Command+Kと同様に、Apply、Acceptすることでファイルへの反映が可能です。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-10-1024x498.png)
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-11-1024x496.png)
こちらのコードについても、Command+Kで修正を行うことが可能です。例として、書籍の値段も管理できるように変更してみます。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-12-1024x501.png)
@Symbols
@Symbolsの機能は、フォルダ内のファイルなどをメンションする際に使用します。例として、先ほど実装した書籍管理システムを要約してもらいます。Chatより@book_management.pyを入力します。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-13-1024x502.png)
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-14-1024x500.png)
Docs機能を使用した、外部ドキュメントの読み込み
外部ドキュメントを読み込ませることで、開発への活用が可能です。今回はpythonのドキュメントを読み込ませてみます。Command+Kより、事前に読み込みを行ったpythonのドキュメントを、DOCSより指定します。
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-15-1024x503.png)
![](https://aimnext.co.jp/note/wp-content/uploads/2024/08/image-16-1024x577.png)
少し見づらいですが、改善点を提案してくれました。
まとめ
上記で紹介した以外にも、Coploit++を使用した自動編集など、多くの機能があります。こういったツールを実際の開発現場に導入するためには、セキュリティの問題などさまざまなハードルはあると思います。また、生成されたコードに対して正しく評価できることも求められると思いますが、導入することによる開発生産性の向上は見込めると考えます。
生成されたコードの品質については、その要求を行うプロンプトの書き方も重要になります。
生成AIを利用した開発を行うためには、これまでの開発スキルに加え、プロンプトエンジニアリングの知識も必要になるように思えました。