過去の自分に教えなければならないVSCodeのショートカット

以下はVitor Paladini ( [Twitter](https://twitter.com/paladini_dev) / [GitHub](https://github.com/vtrpldn) / [dev.to](https://dev.to/vtrpldn) ) による[VS Code shortcuts that I would teach myself if I had a time machine with limited fuel](https://dev.to/vtrpldn/vs-code-shortcuts-that-i-would-teach-myself-if-i-had-a-time-machine-with-limited-fuel-36md)の日本語訳です。

# VS Code shortcuts that I would teach myself if I had a time machine with limited fuel

「やあ俺だ。黙って聞いてくれ。時間がないんだ。」
「待って待って、お前誰だ。どうやって部屋に入ってきた。あとどうして俺そっくりなんだ。」
「俺は未来のお前だ。ここまで来たのは、特別にVSCodeのショートカットを教えるためだ。さあいくぞ」
「正気か？ロト6の番号でも株式情報でもなく、わざわざVSCodeのショートカットを教えにやってきたのか？」
「聞くんだ。俺にはもう、これ以上の力は残っていないんだ。座ってよく聞け。これは重要な…」
「ショートカットを紙にでも書くのではいかんのか？」
「シャラップ！黙って聞け！」
「わかったわかった」
「それではまず、**エクスプローラでファイルをクリックするのを辞め**て、**Ctrl+P**を押すんだ。そしてファイル名を入力せよ。あとファイル名に続けて`:100`って書くと100行目が開くよ。」
![01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/28e44340-505a-f0e0-d018-4b8f2ffbe109.gif)
「おお！未来ではホログラム画像表示できるんだな、これはわかりやすい。」
「あとファイルエクスプローラの**マウスナビゲートも辞め**て、使うのは**Ctrl+Shift+Eと矢印キー**だけにするんだ。」
![02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/60b6aff9-9997-3bd6-f930-fdc82c230075.gif)
「こいつぁクールだ…」
「さらにだな、やっぱり**編集エリアに戻りたくなったら**、編集エリアをクリックするんじゃなくて**Ctrl+1**を押すんだ。さっきまで開いてたエリアに戻るぜ。」
![03.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/343e9d91-2448-8914-49ef-6ba613323fdb.gif)
「最高にクールだな！」
「編集エリアで**ファイルを切り替えるときはCommand+Shift+[]**だぜ。Windowsでは**Alt+左右**だ。おまえは多くの時間を救うことができる。」
![04.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/b155682f-5732-8445-32fa-22ee251358fe.gif)
「これで多くの時間が変わるとは考えにくいけど……」
「**サイドバーの表示非表示を切り替えるにはCtrl+B**だ。おまえは多くのスペースを救うことができる。」
![05.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/0da92296-e913-5d2c-7dc4-d66d330284c3.gif)
「こいつは知ってたぜ！」
「スクロールしすぎるのを防ぐためには、**Ctrl+Gを押して**直接目的の行に移動するんだ。」
![06.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/972552aa-01d6-40c6-36a2-49d57274f997.gif)
「わかったよ。」
「あるテキストが現れる全ての箇所を選択したいときは**Ctrl+Shift+L**だぜ。」
![07.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/8ba3bf24-d0ea-2a48-9913-f6d1b9401776.gif)
「はい。次おねがいします。」
「今のタブを閉じるときは**Ctrl+W**で、閉じたタブをもう一度開きたいときは**Ctrl+Shift+T**だ。」
「それはよく使ってる。特に目新しくは…」
![08.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/7766ad71-d91f-d07e-5b21-32fa937cc07a.gif)
「おっと。もう戻らないといけない時間だ。最後に**Ctrl+Shift+H**で検索と置換ができるぜ。それではさらばだ！」
![09.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/62706b6e-6834-9f1c-e600-7969817f6e25.gif)
「待って！まだ聞きたいことがたくさんあるんだ！タイムマシンをどうやって手に入れたんだ？タイムトラベルはパラレルワールドになるのかい？49ersがスーパーボウルで再び優勝する時は来るのかい？へいちょっと！！」


[コメント欄](https://dev.to/vtrpldn/vs-code-shortcuts-that-i-would-teach-myself-if-i-had-a-time-machine-with-limited-fuel-36md#comment-subscription)にも素晴らしいショートカットがたくさん載ってるから見ていってね！

・サンプルコードは[Forem](https://github.com/forem/forem)です。
・gifは680*416、12FPSで[Kap](https://getkap.co/)で録画したよ。
・VSCodeのテーマは[Cobalt2](https://github.com/wesbos/cobalt2-vscode)、フォントは[Envy Code R](https://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released)だよ。


# コメント欄


「ファイルを編集したりファイルを移動したりスクロールしたりしたあと、元に戻るには`Ctrl+-`、前進は`Ctrl+Shift+-`。べんり。」「こいつ知らなかった！すごい！」「マウスの前進後退ボタン使ってる。」
「次に過去に戻るときは、過去の俺に`Shift+Alt+F`を教えてやってくれ。コードの自動フォーマットだ。」「フォーマットし忘れないように、セーブ時に自動フォーマットするようにVSCを設定するともっといいぞ。」
「`Ctrl+L`で今いる行を選択できる。連打すると複数行選べる。さらに`Alt+↑↓`で選択行をそのまま移動できる。コピペの必要なっしんぐ。」「似たようなショートカットで`Shift+Alt+↑↓`があるぜ。選択行をペーストしてくれる。」
「`Ctrl+D`で今カーソルがあるところの単語を選択する、これ本当に便利。」
「``Ctrl+` ``でターミナルの開閉、``Ctrl+Shift+` ``で新しいターミナル、これ毎日使ってる。」
「ビューの切り替えに`Ctrl+Q`をよく使う。」
「`Ctrl+]`でブラケットの開始終了位置にワープする。べんり。」「うちの環境だとタブが入るんだけど、キーマッピングが違うのかな？」
「`Alt+1`、`Alt+2`、…で1番目、2番目、…のタブを直接開けるよ。Chrome(Ctrl+n)、Gnomeターミナル(Alt+n)とかも同じように動くので覚えておくと便利。」
「`Ctrl+Shift+P`はマスターキーだ。キーボードショートカットを含む全てのコマンドを検索できるよ。」
「"タイムマシンがあるのに何故私は未だにコーディングしているのか"を問うべきだった。」「誰かがタイムマシンのファームウェアを改変したんだろう。」


# 感想

本文の勢いにつられて訳してしまったわけですが、中身は普通に参考になるショートカット紹介記事です。
本文とあとコメント欄にも有用なショートカットがたくさんあって、是非すぐにでも取り入れたいものです。

まあしかし、これらのショートカットを全て覚えて、マウスを一切使わずキーボードだけで作業できるようになるかというと、できるようになれる気が到底しないのは何故だろう。

あと、基本的にWindowsとMacでショートカットは同じなのですが、何故か極一部だけ全く異なるコマンドがあってたいへんですね。
私はMacを全く使わないから関係ないのですが。