概要
VSCodeでGithub Copilotを導入したところ、いつものコード補完のキーバインド(Tab)がCopilotの『提案受け入れ』のキーバインド(Tab)と競合してしまった。
キーバインドを変えるだけの割にちょっと手こずったのでメモ。
起こったこと
例えば、下図のように const title = doc ... まで入力した場合
候補リストの一番上の document を挿入しようと Tab を押すと、入力の続きにうっすら表示されている document.querySelector('h1').textContent; の方が挿入されるようになってしまった。
どうやら『Copilotの提案受け入れ』のショートカットが Tab に設定されていて、コード補完の Tab と競合しているらしい。
やりたいこと
『Copilotの提案受け入れ』は他のキーに割り当てて、 Tab は今までのようにコード補完に使いたい。
ちなみに先ほどの例に限って言えば『Copilot提案を一単語ずつ受け入れ』(Ctrl + →)で document だけの入力もできるが、候補リストからの補完が使えないことに変わりはないのでTabを取り戻す方向で進めた。
普通に設定変更してみる
VSCodeのキーバインド設定を開く(ctrl+K ctrl+S)
検索窓に「copilot」と入力してみると...
Tab キーをバインドしている項目が一つも無い。困った。
解決方法
色々調べた結果、下記communityスレッドに行き当たった。
『Copilot提案受け入れ』の項目名は Accept Inline Suggestion らしい。
先ほどのキーバインド設定で検索してみると、確かにあった。
Tab キーがバインドされているので、それを任意のキーに変更すれば完了。
まとめ
Copilotのキーバインドを変えるだけではあるが、項目名がcopilotというワードを含まないエディタ自体の設定という扱いだったので少し手こずった。
ちなみに、keybind.jsonを直接編集してキーバインドを変える場合は editor.action.inlineSuggest.commit というまた違った項目名なので注意。


