HTML/CSSコーダーが初めてVisual Studio Code(VSCode)を使うときのポイント

HTML/CSSのコーディングをするとき自分がよく使っているVSCodeについて、これから初めて触る人向けに、よく使うメニューや設定などのポイントをまとめておきます。

# 対象の読者
- HTML/CSSをコーディングする人
- テキストエディタをどれにするか迷っている人

ソースコードはこちらのサイト↓から、ポートフォリオのテンプレートをお借りして説明します。

https://webdesigner-go.com/template/portfolio-02/

# インストール

インストールはこちら↓の記事がシンプルにまとまっていると思いましたのでご紹介。日本語化や、おすすめのプラグインなどもまとめられています。

https://qiita.com/genbu-jp/items/0a7e38cd4faaa58f1b56

# フォルダーを開く

「ファイルを開く」より「フォルダーを開く」がおすすめです。(後述する「エクスプローラー」が使えるため。「ワークスペース」は、HTML/CSSではそこまで恩恵がありませんが、メンバー間で環境を揃えるために使うといった場合はあります。)

「ファイル → フォルダーを開く」をクリックし、html等が入っているフォルダを選択します。
[![Image from Gyazo](https://i.gyazo.com/25fa7bb6f2a591c41b4b144a31348003.png)](https://gyazo.com/25fa7bb6f2a591c41b4b144a31348003)
[![Image from Gyazo](https://i.gyazo.com/bc184a2099b765358186fad0510eb089.png)](https://gyazo.com/bc184a2099b765358186fad0510eb089)

「〜〜信頼しますか？」と表示される場合があるので、「〜〜信頼します」をクリック。
[![Image from Gyazo](https://i.gyazo.com/e92fe63a2804c9382013ac1b942e6464.png)](https://gyazo.com/e92fe63a2804c9382013ac1b942e6464)

# 左のメニューバー

### エクスプローラー

上記で「フォルダーを開く」をしていれば、エクスプローラーでファイルツリーを確認できます。ダブルクリックでファイルを開きます。
[![Image from Gyazo](https://i.gyazo.com/e8c560d7864cfb1c96558c74ffe675a1.gif)](https://gyazo.com/e8c560d7864cfb1c96558c74ffe675a1)

### 検索(GREP)

開いたフォルダ内の全てのファイルから検索できます。 `Win:Ctrl+Shift+F / Mac:Command+Shift+F` 
[![Image from Gyazo](https://i.gyazo.com/62e42374b68291192098804b14014f03.gif)](https://gyazo.com/62e42374b68291192098804b14014f03)

### ソース管理、実行とデバッグ(割愛します)

「ソース管理」では、gitなどのバージョン管理ツールと連携していれば、ソースのコミットや、他の人と同じファイルを更新してしまった場合などの対処を行います。
「実行とデバッグ」では、phpやpythonなどのプログラムを実行したり、デバッグしたりします。
いずれもここでは割愛します。
[![Image from Gyazo](https://i.gyazo.com/f8558206f16fb733109d824633077651.png)](https://gyazo.com/f8558206f16fb733109d824633077651)

### 拡張機能(プラグイン)

いろいろな拡張機能をインストールできます。検索ボックスから、プラグインを検索して、必要な拡張機能の「インストール」ボタンをクリックすればOK。拡張機能によってはVSCodeの再起動が必要な場合があります。
[![Image from Gyazo](https://i.gyazo.com/8992b8b178f4a6e8f1ba8a8c5b66b1f0.png)](https://gyazo.com/8992b8b178f4a6e8f1ba8a8c5b66b1f0)

HTML/CSSコーディングでおすすめのプラグインはこちら。(ものによっては拡張機能どうしが邪魔しあってしまう場合がありますので、メンバー間で拡張機能を合わせておく必要がある場合などは、やたらと入れないようにしましょう。)

| 名称 | 概要 |
|:--|:--|
| [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | HTML, CSS, JavaScriptなどに対応したフォーマッタ |
| [IntelliSense for CSS class names in HTML](https://marketplace.visualstudio.com/items?itemName=Zignd.html-css-class-completion) | CSSに記載されているクラス名を、HTMLの入力補完に表示する |
| [indent-rainbow](https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow) | インデントを色分けする |

# 右のスクロールバー

画面の右側にスクロールバーと、ソースコードの縮小表示が表示されます。
[![Image from Gyazo](https://i.gyazo.com/7d3bcdd50ba7cd13690a4e7d5250d3ff.png)](https://gyazo.com/7d3bcdd50ba7cd13690a4e7d5250d3ff)

### 警告

よくない書き方をしているところ(ここでは空のcss`{}`)などに色がつきます。
[![Image from Gyazo](https://i.gyazo.com/6f4204eed974472ccae3b14056e59731.png)](https://gyazo.com/6f4204eed974472ccae3b14056e59731)

### 検索

検索に一致する部分に色がつきます。
[![Image from Gyazo](https://i.gyazo.com/3c0626845e6f7e8ec5831b801beae67a.png)](https://gyazo.com/3c0626845e6f7e8ec5831b801beae67a)

# 下のステータスバー

画面の下にステータスバーが表示されます。いろいろな情報が表示されますが、一部、設定のショートカットになっているものがあります。

[![Image from Gyazo](https://i.gyazo.com/73e224e7663d4024ae3556aa1bb78d4f.png)](https://gyazo.com/73e224e7663d4024ae3556aa1bb78d4f)

### 文字コードを変更する

文字化けしているときは、文字コードの指定が間違っていることがあります。日本語のテキストファイルは、大抵は`SJIS`か`UTF-8`です。文字化けしたときはこちら↓の文字コード部分をクリックして文字コードを変更します。

[![Image from Gyazo](https://i.gyazo.com/bbc0ea09cd3363479a44d245aab07f07.png)](https://gyazo.com/bbc0ea09cd3363479a44d245aab07f07)

[![Image from Gyazo](https://i.gyazo.com/553de48a6a8c8b192de52e4b86130350.gif)](https://gyazo.com/553de48a6a8c8b192de52e4b86130350)

### インデントを変更する

ファイルの中身はインデントを半角スペース`2`つでコーディングしているのに、設定は`4`になっている場合、フォーマッタ等の挙動が期待通りになりません。こちら↓の「スペース...」という部分から変更します。

[![Image from Gyazo](https://i.gyazo.com/556f21ed015f9e6b2e8f9f3d45b7d122.png)](https://gyazo.com/556f21ed015f9e6b2e8f9f3d45b7d122)

[![Image from Gyazo](https://i.gyazo.com/ba2d342ec4113436da25265f7049a9e3.gif)](https://gyazo.com/ba2d342ec4113436da25265f7049a9e3)

### 改行コード

HTMLで問題になることはありませんが、納品先から`CRLF`や`LF`でと指定があれば、こちら↓から変えましょう。指定がなければ`LF`が無難です。

[![Image from Gyazo](https://i.gyazo.com/e20eaad8bbe85f30aa5ca8d29ab7b6e9.png)](https://gyazo.com/e20eaad8bbe85f30aa5ca8d29ab7b6e9)

### 言語

何言語で書かれたファイルかを変更します。HTMLで書いているのにタグ名などが色分けされない、などの時に確認しましょう。

[![Image from Gyazo](https://i.gyazo.com/fabdf953169c489c458edf4cc8c6c71f.png)](https://gyazo.com/fabdf953169c489c458edf4cc8c6c71f)

[![Image from Gyazo](https://i.gyazo.com/4dad7ea98ab3be37a1a7cfb4104d20e9.gif)](https://gyazo.com/4dad7ea98ab3be37a1a7cfb4104d20e9)

# コマンド

「表示 → コマンドパレット」から、コマンドを選択できます。 `Win:Ctrl+Shift+P / Mac:Command+Shift+P`
[![Image from Gyazo](https://i.gyazo.com/89fecdcc6792e09189f02f9a9ac66813.png)](https://gyazo.com/89fecdcc6792e09189f02f9a9ac66813)

コマンドは部分一致で検索できるので、よく使うコマンドは何で検索すると出てくるか覚えておくと良いです。
例：「ドキュメントのフォーマット **Form**at Document」というコマンドは**Form**で出てくる。

以下に、よく使うコマンドを紹介します。

### フォーマット

インデントやカッコの位置などを揃えてくれます。(予めフォーマッタの拡張機能をインストールしておく必要があります。)
[![Image from Gyazo](https://i.gyazo.com/46aad86eed919a084562a42cd6a1a130.gif)](https://gyazo.com/46aad86eed919a084562a42cd6a1a130)

### ファイルの比較
比較したいファイルを２つとも開いておき、「ファイル:アクティブファイルを比較」を選択、比較先のファイルを選択します。比較結果が色分けして表示されます。
[![Image from Gyazo](https://i.gyazo.com/3e31905715eca4f33657a9ab42a5e52c.gif)](https://gyazo.com/3e31905715eca4f33657a9ab42a5e52c)

定期的にファイルのコピーをとっておけば、「この日変更したのはどの部分だったか」といった確認がしやすくなります。gitなどのバージョン管理機能を使っている場合は、前回のコミットとの比較や、別ブランチとの比較などができますが、ここでは割愛します。

# テキストエディタ部分の便利機能

### ファイル内を検索

「編集 → 検索」で、開いているファイル内を検索できます。 `Win:Ctrl+F / Mac:Command+F`
[![Image from Gyazo](https://i.gyazo.com/1d3ac0e51fe07ed7e1b19b55592431e1.png)](https://gyazo.com/1d3ac0e51fe07ed7e1b19b55592431e1)

### ファイル名で検索

「移動 → ファイルに移動」で、ファイル名を検索して開くことができます。 `WIn:Ctrl+P / Mac:Command+P`
[![Image from Gyazo](https://i.gyazo.com/d1ac382a4a4a3f7bf3fc8a42bbdeb831.png)](https://gyazo.com/d1ac382a4a4a3f7bf3fc8a42bbdeb831)

ファイル名は部分一致で検索できます。ファイルが多くなっても、素早く探すことができます。
[![Image from Gyazo](https://i.gyazo.com/d341ba9bdfda991a18cb96ae7db196a3.gif)](https://gyazo.com/d341ba9bdfda991a18cb96ae7db196a3)

### 画面を分割する

ファイル名のタブをドラッグ＆ドロップすると、画面を分割できます。
[![Image from Gyazo](https://i.gyazo.com/fb66cd5f837a278c7e20a56ff4677e18.gif)](https://gyazo.com/fb66cd5f837a278c7e20a56ff4677e18)
上下に分割する場合はこう↓
[![Image from Gyazo](https://i.gyazo.com/57184e2b35a41fc046ff949177b1cfd5.gif)](https://gyazo.com/57184e2b35a41fc046ff949177b1cfd5)

`Alt`キーを押しながらだと、単一のファイルを分割して表示できます。
[![Image from Gyazo](https://i.gyazo.com/2fb1b8854a3140ad12e044f8b9329077.gif)](https://gyazo.com/2fb1b8854a3140ad12e044f8b9329077)

### 入力補完

途中まで入力すると残りをサジェストしてくれる機能です。`Ctrl+Space`を押すと出る場合もあります。

#### タグ名、閉じタグ、インデントの補完
[![Image from Gyazo](https://i.gyazo.com/9f91d91c3c507f18056d3ec5f34490d5.gif)](https://gyazo.com/9f91d91c3c507f18056d3ec5f34490d5)

#### 属性と属性値の補完
[![Image from Gyazo](https://i.gyazo.com/8865e4307833c01926ece2018a704603.gif)](https://gyazo.com/8865e4307833c01926ece2018a704603)

#### ファイル名の補完
[![Image from Gyazo](https://i.gyazo.com/5404a2ca096ec70822bb5ab4a02870d1.gif)](https://gyazo.com/5404a2ca096ec70822bb5ab4a02870d1)

### アウトライン

同じ階層のタグを開閉できます。見通しが良くなります。
[![Image from Gyazo](https://i.gyazo.com/09fded6f45a781870993228bc62ab9c8.gif)](https://gyazo.com/09fded6f45a781870993228bc62ab9c8)

### カーソル移動や文字を選択する様々なテクニック

ダブルクリック→ドラッグで、単語から単語を選択できます。
![](https://i.gyazo.com/c8dddf42a068c1f160dbbb190f157c6b.gif)

(通常のドラッグでは単語の区切りに関係なく1文字ずつの選択になります。)
![](https://i.gyazo.com/40471ac92dfd44d03b175dfca44a14f2.gif)

行頭へ移動。`Win:HOME / Mac:Command+ ←` 
1回目でインデントを除いた行頭へ。2回目でインデントを含めた行頭へ移動します。
![](https://i.gyazo.com/a8e71f72d116674020ef47ef674c3890.gif)

行末へ移動。`Win:END / Mac:Command+ →` 
![](https://i.gyazo.com/56ad4e3b830b58367a31c457beb36210.gif)
↑HOMEキーとENDキーはキーボードによってはFnキーと組み合わせが必要です。

インデントを除いて1行選択。(行頭へ移動 → Shift+行末へ移動)
![](https://i.gyazo.com/2c8ce9f1f13e3213af6eb7498d615f19.gif)

行をタグで囲む。(インデントを除いて1行選択 → 切り取り → 入力補完 → 貼り付け)
![](https://i.gyazo.com/60df227b7cd113b5130e5ec967d835e8.gif)

トリプルクリックで1行選択。
![](https://i.gyazo.com/40672e461a50991fd7402dc89d0e0d4a.gif)

行番号をクリックして1行選択。
![](https://i.gyazo.com/0c6e659105189dd69cf6aa1beb62c104.gif)

複数行を選択して切り取り→貼り付け(❗️インデントが崩れるパターン)
![](https://i.gyazo.com/04f5f0f8b5efb53647d04e3119aa101b.gif)

前の行の末尾から選択して切り取り→貼り付け(インデントが崩れないのでおすすめ)
![](https://i.gyazo.com/715c40dc076fc9618258cd5e47715cc0.gif)

次を検索。`F3`
![](https://i.gyazo.com/e2bf2e5bd0e54c87b381c8cc30a6d78c.gif)

離れた行に連番を打つ。(`F3` → 2 → `F3` → 3 → `F3` → 4)
![](https://i.gyazo.com/bfd2381c62b229559c4325e3ee8fd31a.gif)

### その他

VSCodeに素早く戻ってくる。`Win:Alt+Tab / Mac:Command+Tab` 
![](https://i.gyazo.com/7d8527e30f039cbbc92f7faed0cb5e24.gif)