【VSCode】よく使う・覚えたいショートカット【まとめ】（Mac版）

# はじめに
コーディングをしながらの、 VSCode の操作、めんどくさいですよね？
筆者はめんどくさいです。

なので、ここでは、筆者がよく使う、もしくは調べて覚えたいと思ったショートカットをまとめていきます。
新しくショートカット知識を仕入れたら随時更新していく予定です。

一般的すぎる、ファイルの保存やコピー・貼付け、ファイル内検索などは割愛します。

<!--
覚えたいシリーズ

- |Cmd + Shift + O|シンボルへのジャンプ|
-->

# 以下記載のチートテーブル（チートシート的な）

以降に記載するコマンドの一覧をテーブルでまとめておきます。


|ショートカット|概要|使用頻度|
|---|---|---|
|Cmd + Shift + F|グローバルテキスト検索|高|
|Ctrl + A|行頭にジャンプ|中|
|Ctrl + E|行末にジャンプ|中|
|Shift + Ctrl + A|カーソルから行頭までを選択|中|
|Shift + Ctrl + E|カーソルから行末までを選択|中|
|Cmd + Option + 矢印|タブの切替|低|
|Cmd + W|開いているタブを閉じる|高|
|Cmd + K -> W|開いているタブをすべて閉じる|中|
|Cmd + Q|VSCodeそのものを閉じる|低|
|Cmd + Ctrl + F|ウィンドウの最大化・解除|中|
|Cmd + P|ファイルの検索|高|
|Cmd + Shift + P|コマンドパレットの表示|高|
|Cmd + N|新規空ファイルを開く|高|
|Cmd + K -> Cmd + Option + C|開いているタブの絶対パスをコピー|高|
|Cmd + K -> Cmd + Option + Shift + C|開いているファイルの相対パスをコピー|中|
|Cmd + D|選択箇所の一括選択(1つずつ選択)|中|
|Cmd + Shift + L|選択箇所の一括選択(全選択)|低|
|Cmd + K -> S|フォーマッターを効かせずに保存|低|
|Cmd + K -> Shift + Enter|開いているタブの固定・解除|低|
|Cmd + Shift + Enter|ターミナルにフォーカス|低|
|Cmd + 1|1つめのエディタグループにフォーカス|低|
|Cmd + Shift + @ （Cmd + `）|ターミナルの開閉|中|
|Option + 矢印|選択行の移動|低|

# 一般的なやつ
まずは、 VSCode に限らず一般的なショートカットをザーッとまとめていきます。

## ファイル内操作系

- Cmd + Shift + F：グローバルテキスト検索
- Ctrl + A：行頭にジャンプ
- Ctrl + E：行末にジャンプ
- Shift + Ctrl + A：カーソルから行頭までを選択
- Shift + Ctrl + E：カーソルから行末までを選択

## タブ・ウィンドウ操作系

- Cmd + Option + 矢印：タブの切替
- Cmd + W：現在開いているタブを閉じる
- Cmd + K -> W：開いているタブをすべて閉じる
- Cmd + B：サイドバーの開閉
- Cmd + Q：VSCodeそのものを閉じる（全ウィンドウが消えるので注意）
- Cmd + Ctrl + F：ウィンドウの最大化・解除

# VSCode特有のやつ・特筆すべきショートカット

## Cmd + P：ファイル検索
- 使用頻度：高

ファイルパスやファイル名を覚えていていれば、 Explorer で探すちまちま探すより(感覚)100倍ぐらい速い。

## Cmd + Shift + P：コマンドパレットの表示
- 使用頻度：高

なんだかんだ結構使ってるやつ。
Cmd + Shift + P からのコマンドパレットに `Sort` と打ち込んで、 `TypeScript: Sort Imports` コマンドとか `Sort Line Ascending` コマンドとか、 Github Copilot 系のコマンドを実行したり。
開いているファイルの種別にあわせて、補完で表示されるコマンドも変わるので、その中から矢印キーで選んだり。

## Cmd + N:新規空ファイルを開く(保存はしない)
- 使用頻度：高

一旦メモとして残したいときとか、`console.log` した json 文字列をファイル化せずに VSCode 上でフォーマットして読みたいときに便利。

## Cmd + K -> Cmd + Option + C：開いているタブの絶対パスをコピー
- 使用頻度：高

git 操作を ターミナルでやる方の場合、 `git add -p` のパス指定するときとかに使える。
また、その他ターミナル操作で現在開いているファイルを何らかの目的で参照したい場合にももちろん使える。

## Cmd + K -> Cmd + Option + Shift + C：開いているファイルの相対パスをコピー
- 使用頻度：高

これもターミナル操作の引数指定のときにも使えるが、プロジェクトルートからの相対パスになってしまうので、開いているターミナルのカレントディレクトリがプロジェクトルートから変わっていると使いづらい。
主に、ドキュメンテーションや、他者との情報共有などのコミュニケーションを取る際によく使う。

あと無駄にショートカットが難しいので、使えるようになると、ちょっとｶｯｺｲｲ（気がする）。
うまく使いこなせるようになると、ゲームのコマンド入力的な一種の気持ちよさがある。

## Cmd + D：選択箇所の一括選択(1つずつ選択)
- 使用頻度：中

Cmd + D を押すたびにファイル内の次の同じ文字列を選択する。
一括で変数や関数の命名を変える際に死ぬほど便利。

## Cmd + Shift + L：選択箇所の一括選択(全選択)
- 使用頻度：低

Cmd + D の全選択版。
1つずつ選択できないので、置換ミスなどを気にしてあまり使わない。
明らかにミスは起きないだろってときに使って、確認してから一括変更していくのが良いかも。

## Cmd + K -> S：フォーマッターを効かせずに保存
- 使用頻度：中

フォーマッターが全く浸透していないプロジェクトや、他者のフォーマッター設定ミスで自分でフォーマットしてしまうとき、などなどの一旦フォーマットしたくない場面で重宝する。

## Cmd + K -> Shift + Enter：開いているタブの固定・解除
- 使用頻度：低

固定タブで Cmd + W してもタブは閉じなくなる。
なにかのタスクに取り組んでいて、一旦開いてるファイル全部閉じたいけど、このファイルは残しておきたい！ってときに Cmd + K -> Shift + Enter してから、 Cmd + K -> W することで、特定ファイルはタブに残しながら他のファイルはすべて閉じる、みたいなことができて便利。

最近以下の記事を読んでから VSCode で作業ログを残しているので、そのログを残すファイルだけ固定タブにするみたいな活用の仕方をしています。

https://qiita.com/does_not_exist/items/8c8014294680b3d47261

少し脱線しますが、 Github Copilot を使って作業ログを残すと、なんだっけコレ？みたいな用語とか、定義を自分で書き直すのがめんどくさい用語とかをサクッとメモれるので良いですね。

## Cmd + Shift + Enter：ターミナルにフォーカス
- 使用頻度：??? （まだ覚えられていないので覚えていく）

この程度の操作ならスイーっとカーソルを動かしてポチッとクリックするだけで済んでしまうのでちゃんと覚えてなかったけど、意外とターミナル使うことが多く覚えるに越したことはないので覚える。

## Cmd + 1：1つめのエディタグループにフォーカス
- 使用頻度：??? （まだ覚えられていないので覚えていく）

ターミナルへのフォーカスと同時に覚えたい。

## Cmd + Shift + @ （Cmd + `）：ターミナルの開閉
- 使用頻度：中

VSCodeを立ち上げたときにターミナルを開きたいときに使う（基本使いたいのでターミナルが開かれなければ、基本毎回打つ）。
また、ターミナルが邪魔だなってなったときにも、一旦 Cmd + Shift + Enter でターミナルにフォーカスして、 Cmd + Shift + @ でターミナルを非表示にすると良さそう。

ターミナルは非表示にしてもターミナルが消えるわけではないので安心して使える一品。

## Option + 矢印：選択行の移動
- 使用頻度：中

例えば以下のようなコードを書いていて「うわ if-else 内のロジック逆だったわ」となったときに、`console.log` にカーソルをあわせて Option + 矢印 で移動させると、 `Cmd + X -> 移動 -> Cmd + V` とかをやるより楽だったりするので地味に便利。

```javascript
if (x > 0) {
    console.log("NG")
} else {
    console.log("OK")
}
```