LoginSignup
222
181

GitHub Copilotが便利になったのでターミナルもVSCodeで良いのでは?という話

Last updated at Posted at 2023-12-17

この記事はラクスアドベントカレンダー2の17日目です。
先日のVSCodeのアップデートで、GitHub Copilotを使うとターミナル操作が便利になりました。
これにより、別途ターミナルのアプリを使わずにすべてVSCode上で操作した方が便利なのでは?となりました。

アップデート前までどうしてたか

MacのiTerm2上で、GitHub CopilotのCLI版(パブリックベータ)で入力補完やコマンドの意味を調べたりしていました。
それ自体は便利でしたが、いくつかの不便な点もありました。

  • 使い方がちょっと煩雑だった

例えばコマンドをサジェストして欲しい場合、gh copilot suggest 'gitで1つ前のコミットを取り消したい'のようにタイプする文字数も多くなり、またそれが一般的なコマンド or ghコマンド or gitコマンドかの3択に答えないといけなくて面倒でした。

image.png

  • ssh接続で不便

SSH接続先でも使用するためにGitHub CLIを都度インストールするのは面倒であり、共用サーバーにインストールすることも避けたかったため、ローカルPCのターミナルでサジェストしてからコピー&ペーストする方法を取っていましたが、これが手間でした。

特にSSH接続の際の手間が大きな問題でしたが、今回のアップデートでこの問題が解消されたと感じています。

アップデート内容

今回のアップデートで@terminalというエージェントが追加されました。
エージェントというのは、あらかじめ設定された特定の範囲に絞ったサジェストをしてくれるもので、@terminalはターミナルに特化させたものです。
今までもスラッシュコマンドで似たようなことができたようですが、今回のリリースではコマンド候補が大幅に改善されて、使用されているOSやシェルがわかるようになったとのことです。

使い方

image.png

ターミナルから Cmd +i でCopilot Chatを開くと@terminalが入力された状態で開くので、続けて下記のようにプロンプトを入力することで使用できます。

プロンプト内容 説明
@terminal <プロンプト> プロンプトで直接指示を与える
@terminal #terminalSelection ターミナルの選択した部分について説明させる
@terminal #terminalLastCommand 最後に実行したコマンドについてサジェストさせる

@terminal <プロンプト>

直接プロンプトで指示を与える使用方法です。

image.png

サジェストされた結果が気に入ったら、ターミナルのアイコンをクリックすればコマンドの内容がターミナルに貼り付けられるので、あとはエンターを押すだけで実行できます。またターミナルがどこに接続されているかは関係ありませんので、ssh接続での問題が解消されました。

@terminal #terminalSelection

ターミナル上で分からない箇所を選択状態にして、Cmd+iから質問するやり方です。
ちなみに、#とタイプすれば候補として出てくるので#terminalSelectionは覚えなくて良いです。

スクリーンショット 2023-12-17 20.08.02.png

@terminal #terminalLastCommand

最後に実行したコマンドについて説明してくれます。

image.png

特に便利なのがコマンドが失敗した時で、その場合 :sparkles: アイコンが表示されるので押して、

image.png

続けて、Explain using Copilotをクリックすると

image.png

自動的に@terminal #terminalLastCommandが実行されて、何がエラーの原因なのか教えてくれるのが便利です。あとこの例では冒頭に書いたとおり私のPCがMacだと推測して回答できている様子ですね。

image.png

さらに実行したのがプログラムの場合、

image.png

エラーメッセージからエラーを特定して修正の提案までしてくれるのがすごいです。

image.png

コミットメッセージ生成

少し前からGUIのGit機能には入っていた機能ですが、今回のアップデートでターミナルでもできるようになりました。

使い方は、 git add して :sparkles: から Generate Commit Messageが選択します。

image.png

そうするとコミット内容から良い感じにコミットメッセージを自動で作ってくれるようになりました。

image.png

さいごに

このアップデートによる利便性を鑑みて、しばらくはiTerm2を使わずに、ターミナル操作をVSCodeに完全に移行してみることにします。

222
181
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
222
181