VSCodeでの作業効率化のためのショートカット

# はじめに
[達人プログラマー(第2版): 熟達に向けたあなたの旅](https://www.amazon.co.jp/%E9%81%94%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC-%E7%AC%AC2%E7%89%88-%E7%86%9F%E9%81%94%E3%81%AB%E5%90%91%E3%81%91%E3%81%9F%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E6%97%85-David-Thomas/dp/4274226298)を読みました。
その本の3章で、基本的なツールを使いこなせるようになることで、より生産的になれるという内容が書かれております。
基本的なツールとして、以下が挙げられていました。
- プレーンテキスト
- シェル
- パワーエディット
- バージョン管理
- デバッグ
- テキスト操作言語
- エンジニアリング日誌

今回の記事では、上記の中でパワーエディット、つまり、エディターツールをもっと使いこなせるように、ショートカットをまとめようと思います。

※コマンドはMac用として書いています。

# ショートカット一覧
### フォーカス移動
<table>
  <thead>
    <tr>
      <th>内容</th> <th>コマンド</th> <th>備考</th>
    </tr>
  </thead>
  <tr>
    <td>エクスプローラーにフォーカスを移動</td><td>Command + Shift + E</td><td>エクスプローラーとはフォルダとかファイルが選べる左側にあるやつです</td>
  </tr>
          <tr><td>ターミナルにフォーカスを移動</td><td>Ctrl + `</td><td>再度、押すとEditorにフォーカスが戻る<br>※Windosにはないのでショートカットを設定する必要がある</td></tr>
          <tr><td>Editorのタブにフォーカスを移動</td><td>Command + 1</td><td>-</td></tr>
          <tr><td>Editorのタブ
          を切り替える</td><td>Ctrl + tab</td><td>Ctrlを押しながら、tab,
          tab,tab...と押していくと、移動できる。Shiftを押すと逆回転となる。</td></tr>
<tr><td>V</td><td>c</td><td>シ</td></tr>
</table>

### ファイル操作
<table>
  <thead>
    <tr>
      <th>内容</th> <th>コマンド</th> <th>備考</th>
    </tr>
  </thead>
    <tr>
    <td>エクスプローラーからファイルを開く</td><td>Space</td><td>Command + Shift + Eでエクスプローラーにフォーカスを移動して、矢印でファイルを選択して、このコマンドでファイルを開けます</td>
  </tr>
  
      <tr>
    <td>エクスプローラーからWindowを分割してファイルを開く</td><td>Ctrl + Enter</td><td>-</td>
  </tr>
    <tr>
    <td>ファイルを検索して開く</td><td>Command + P</td><td>-</td>
  </tr>
      <tr>
    <td>既存のファイルを開く</td><td>Command + O</td><td>OSのファイルエクスプローラーが開きます</td>
  </tr>
      <tr>
    <td>新規ファイル作成</td><td>Command + N</td><td>OSのファイルエクスプローラーが開いて、ファイルを作成します。VSCode上で完結したい場合は、後述の説明を参照</td>
  </tr>
</table>

:::note info
VSCode上でファイル作成を完結したい場合、ショートカットを登録する必要があります。
手順は下記になります。
- Command + K, Command + Sを押してショートカットの登録画面を開きます
- New Fileで検索し、explorer.newFileを探して、登録します（私は、Command + Shift + N)としました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2475427/fcecf021-97d6-7cb6-44db-fbbbdc036210.png)
- おそらく、デフォルトだと他の設定とキーバインドが被っているため、When Expressionを登録し、エクスプローラーにフォーカスが当たっている時のみ実行するようにします
- 対象のショートカットを右クリックし、When Expressionの変更を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2475427/809e9ca6-1eb1-26ce-a3ad-3d5bf277bd95.png)
- Whenにフォーカスが当たるので、explorerViewletFocusを入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2475427/f1e1dbcb-b067-c5e9-d5b9-2e266727209e.png)
:::

:::note info
フォルダを作成するというショートカットもあった方がいいと思ったので、作成しました。
手順は下記になります。
- Command + K, Command + Sを押してショートカットの登録画面を開きます
- Folderで検索し、explorer.newFolderを探して、登録します（私は、Command + Option + N)としました
![スクリーンショット 2024-10-02 10.59.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2475427/e54f6d2c-8410-ffd0-3a91-7b3cfa8c97b9.png)
- おそらく、デフォルトだと他の設定とキーバインドが被っているため、こちらもWhenを登録します
:::

### 検索
<table>
    <thead>
      <tr>
        <th>内容</th> <th>コマンド</th> <th>備考</th>
      </tr>
    </thead>
    <tr><td>ファイル内検索</td><td>Command + F</td><td>検索WindowでTabを押すと、フォーカスが右に移動し、Enterを押すと「大文字と小文字を区別する」「単語単位で検索する」「正規表現を使用する」の有効・無効が切り替えられます。または、下の方法でも可能です。</td></tr>
    <tr><td>ファイル内検索で「大文字と小文字を区別する」の有効無効を切り替える</td><td>Command + Option + C</td><td>-</td></tr>
    <tr><td>ファイル内検索で「単語単位で検索する」の有効無効を切り替える</td><td>Command + Option + W</td><td>-</td></tr>
    <tr><td>ファイル内検索で「正規表現を使用する」の有効無効を切り替える</td><td>Command + Option + R</td><td>-</td></tr>
    <tr><td>a</td><td>b</td><td>c</td></tr>
    <tr><td>ファイル内置換</td><td>Command + Option + F</td><td>オプションの切り替えは検索と同じです。</td></tr>
     <tr><td>プロジェクト内検索</td><td>Command + Shift + F</td><td>オプションの切り替えは検索と同じです。</td></tr>
     <tr><td>次の検索に移動</td><td>Command + G</td><td>-</td></tr>
     <tr><td>前の検索に移動</td><td>Command + Shift + G</td><td>-</td></tr>
</table>

### カーソル移動・選択
<table>
    <thead>
      <tr>
        <th>内容</th> <th>コマンド</th> <th>備考</th>
      </tr>
    </thead>
          <tr>
        <td>単語単位で移動</td> <td>Option + ← OR →</td> <td>Shiftを押しながらにすると選択になります</td>
      </tr>
      <tr>
        <td>行頭・行末に移動</td> <td>Command + ← OR →</td> <td>Shiftを押しながらにすると選択になります</td>
      </tr>
      <tr><td>ファイルの先頭・末尾に移動</td><td>Command + ↑ OR ↓</td><td>Shiftを押しながらにすると選択になります</td></tr>
      <tr><td>特定の関数、クラスに移動</td><td>Command + Shift + O</td><td>Command + Pでファイル名を打ち込んで、@を打ち込むと同じような機能が実行できます。</td></tr>
    <tr><td>対応する括弧に移動</td><td>Command + Shift + ]</td><td>-</td></tr>
    <tr><td>選択した部分と次にマッチする部分に移動</td><td>Command + K, Command + D</td><td>-</td></tr>
    <tr><td>カーソルを追加</td><td>Command + Option + ↑ OR ↓</td><td>矩形選択もこれで可能です</td></tr>
<tr><td>選択した部分に一致する文字を全選択</td><td>Command + Shift + L</td><td>ESCを押下すると元の状態に戻れます</td></tr>
    <tr><td>選択した部分と次にマッチする部分を選択に追加</td><td>Command + D</td><td>-</td></tr>
    <tr><td>行を移動</td><td>Option + ↑ OR ↓</td><td>-</td></tr>
</table>

### 複数ファイルにまたがる移動
<table>
    <thead>
      <tr>
        <th>内容</th> <th>コマンド</th> <th>備考</th>
      </tr>
    </thead>
          <tr>
        <td>単語単位で移動</td> <td>Option + ← OR →</td> <td>Shiftを押しながらにすると選択になります</td>
      </tr>
    <tr><td>一つ前にいた場所に戻る</td><td>Ctrl + -</td><td>定義に飛んだ後、元の場所に戻りたいときに使用</td></tr>
    <tr><td>一つ先にいた場所に進む</td><td>Ctrl + Shift + -</td><td>一つ前にいた場所に戻るで戻ってから、また元いた場所に戻りたいときに使用</td></tr>
    </table>

### Editor操作
<table>
    <thead>
      <tr>
        <th>内容</th> <th>コマンド</th> <th>備考</th>
      </tr>
    </thead>
    <tr><td>右のタブに移動</td><td>Command + Shift + ]</td><td>左は、Command + Shift + [</td>
    <tr><td>タブを閉じる</td><td>Command + W</td><td>-</td></tr>
    <tr><td>他のタブをすべて閉じる</td><td>Command + Option + T</td><td>-</td></tr>
</table>
<!--
Window分割、移動
特定の行番号に移動
行の入れ替え
検索、正規表現、以前の検索
置換
プロジェクト検索Command + Shift + F
カーソルを複数作成し、まとめて編集
矩形選択
コンパイルエラーの表示
テストの実行
デバッグの実行


# ユースケース
ユースケースとして、プロジェクトの作成からデバッグ実行までをショートカットを使って作業したいと思います

- VSCodeを開く
- Ctrl + `でTerminalにフォーカスを当てる
- プロジェクトを作成するディレクトリまで移動し、プロジェクトを作成する
(私の場合、`flutter create`というコマンドで、Flutterのプロジェクトを作成しました)
- 作成したプロジェクトのフォルダに移動し、`code . -a`でプロジェクトフォルダを開く
- 開けたら、Command + Shift + Eでエクスプローラーに移動し任意の動作を実行します
  - ファイルを選択して、Spaceでファイルを開く
  - Command + N（登録した人はCommand + Shift + N)でファイルを作成する
  - 登録した人は、Command + Option + Nでフォルダを作成する
- ファイルを開いたら、以下のコマンドでカーソルを移動利用しつつ、コーディング
  -  単語単位で移動：Option + ← OR →
  -  行頭・行末に移動：Command + ← OR →
  -  ファイルの先頭・末尾に移動Command + ↑ OR ↓
  -  関数、クラスを検索して移動：Command + Shift + O
-->