VScode環境構築（Windows10、Python、C++、C、Git）

## 概要
この記事は

- 新しいPCを手に入れて改めて環境構築したので、その備忘録
- VScodeで Python, C++, C などを扱う方へのヒントになればいいな

という気持ちで書きました。

この記事を読むと

- VScodeが使えるようになる！
- Pythonが使えるようになる！
- C++, Cが使えるようになる！

という感じの内容になっていて、具体的には

- VScodeのインストール
- Anacondaのインストール
- Pythonの仮想環境の設定等
- C++, Cを実行するためのコンパイラのインストール
- 各種拡張機能のインストール
- 私のVScodeの設定

という感じになっています。
……とはいっても、実際にはほとんどが記事紹介という感じなので、先駆者様には感謝感謝です。


## VScodeのインストール
ということで、まずはVScodeをインストールしましょう。
VScodeはコードを書くやつですね（雑）。

[VScodeのインストール手順@Windows10](https://qiita.com/Shi-nakaya/items/c43fb6c1e638d51bf1c8)

……こんな感じですらすら進んでいきます。

## Python環境構築

続いて、Pythonの環境構築です。
Pythonは今いろいろと注目されていて、機械学習なんかでもよく使われている言語ですね。

まずはAnacondaを入れます。蛇縛りなんですかね。
Anacondaは、これ一つで全部入ってるよ！みたいなやつで、Jupyter lab とかとっても便利なので、今回は紹介しませんがぜひ使ってみてください。

[Python環境構築(Anaconda + VSCode) @ Windows10 【2020年１月版】](https://qiita.com/manamana/items/38e963ce04f24de4bbe4)

仮想環境についてちょっとだけ。
Pythonって3.7とか3.8とか、いろいろバージョンがあったり、便利なライブラリ（道具箱みたいないイメージ）がいっぱいあったりして、例えばプロジェクトとか毎に設定を変えたいなぁと思うことが結構あるのです。
なので、仮想な環境を作って、その中でバージョン等々を管理していくわけです。
最初の「一人で勉強」段階ではそんなに仮想環境意識しなくても大丈夫ですけど、まぁやっぱり使えるといいなとは思います。

ということで、上の記事ではその辺のこともちょっと詳しく載っているのであげました。
仮想環境構築はAnacondaのGUI上でも（つまりコマンドポチポじゃなくても）一応できます。

Anacondaでの仮想環境づくりは ``` conda ``` というコマンドを使って行うのですが、 上記URLにある以外で基本的なコマンドは以下が参考になります。

[Anacondaで仮想環境構築・削除](https://blog.mktia.com/how-to-create-and-remove-virtual-environment-on-anaconda/)

## C++, C の環境構築
こちらは、２つの方法をご紹介します。
実は、前半の方法でやって一部うまくいかなかったので、後半の方法もやった……という感じなので、もしかしたら初めての方は後半の方法のほうがいいかもしれません。

ではまずは１つ目の記事です。

[Visual Studio Codeで競プロ環境構築(導入編)](https://qiita.com/AokabiC/items/e9312856f588dd9303ed)

とっても「いいね」がたくさんついている記事なので、失敗したのは私のせいだと思います。
あとで、失敗した部分についても話します。

こちらの方法はWindowsというOSの上に「Ubuntu」というOSをのっけて、その中でC やC++をコンパイル（実行できる状態にすること）する方法です。
上の記事曰く、２つ目で紹介するやつには変なバグがあったりするみたいで、どっちかというと上のやり方のほうが良さそうなのか？という印象でした。

では２つ目の記事の紹介です。

[VSCode + MinGW-64 で C++ のコードをビルド＆デバッグするまで](https://qiita.com/yamazaki3104/items/91cabd58980c6c17754e)

こちらの方法はMinGWという「Windows でもフリーで使える C++ コンパイラ」（引用）をインストールして使おうという方法です。

私は結局上記２つどっちも行ったのですが、そんな状況だからか、はたまたPythonも使えるようにしたからか、ちょっとはまった部分がいくつかあったので、次の節はそのはまりポイントについて話そうと思います。

## VScode × Python × C++ ではまったこと

### シェルが複数
シェルとは……についてはこちらがわかりやすいです。

[シェルとは](https://wa3.i-3-i.info/word11219.html)

VScodeでターミナルを開いて、「既定のシェルの選択」というところで使えるシェルの確認ができるのですが、ここまでをすべて実行していると

- Command Prompt (Pythonが実行できる)
- Windows PowerShell (デフォルトである)
- WSL Bash (C, C++などの実行やUnixコマンドが使える)

の３つが選択できるようになっていると思います。
例えばWSL BashではPythonの実行はできない（多分）ので、最初は「あれ、さっき設定したのにPython使えなくなっている！」と混乱するかもしれません。
言語ごとにシェルを切り替えれば問題なく使えるので安心してください。

### 便利なC, C++の拡張機能が使えない！？
はい、これが先ほどの２の記事の前半で私がつまづいたところです。
具体的にはこんな事象にあいました。

[VSCodeでC/C++開発環境を整えてみる](https://www.off-soft.net/ja/software/develop2/vscode-cpp-develop-msbuild.html)

２つ目の記事の2-3で説明している、コードの間違いなどを指摘してくれる便利な拡張機能である「C/C++」をインストールしたのですが、

``` 
#include <stdio.h>
```
などのインクルード文で「include path が正しくないよ！」みたいなエラーをはかれてしまいました。
まぁ詳しい話は割愛しますが、この問題を自力で解決できなかったので、２つ目の方法に変更した……という感じです。

## Gitのインストール
私のつまずきポイントについてはだいたいこんな感じですが、気を取り直して次はGitのインストールです。
Gitは、コードを管理したり、共有したりするやつです。便利です。

[Windows に git をインストールする手順](https://qiita.com/nakazawaken1/items/bbcb4640cf9aceee5745)

あと、インストールしただけではいろいろと不都合があるので、初期設定もしたほうが良いと思います。
それはこちらが参考になります。

[VSCodeでのGitの基本操作まとめ](https://qiita.com/y-tsutsu/items/2ba96b16b220fb5913be)

「Gitの初期設定」の部分は名前とメールアドレスだけで十分だと思います。
こうすれば、VScodeのGUI上でいろいろな操作ができるようになります。

ちなみに、Gitをインストールすると、またシェルが増えて今度は「Git Bash」が使えるようになります。
このGit Bash上で「Gitの初期設定」をするわけですが、ここでの設定内容は、場合によっては**他のシェルに反映されません**。
GUIはGit Bashで行った設定が反映されるのですが、ほかのシェルを使ったGitの操作を行うときは注意しましょう。

この話は初めての方にはちんぷんかんぷんだと思いますが、設定でつまづいたときには、以下の記事が参考になるかもしれません。

[Gitの設定をgit configで確認・変更](https://note.nkmk.me/git-config-setting/)

Gitのコマンドについては、以前まとめを少し書いたので、ついでにのっけておきます。（露骨な宣伝）

[Gitチートシート](https://qiita.com/Kotabrog/items/4085d4105e816be1d9e4)

上の記事の参考URLを見れば一通りGitについては学べると思うので、まだ使ったことがない方がいたらぜひ見てみてください。

## 各種拡張機能

ということでここからは拡張機能やVScodeの設定についてです。
とはいっても、基本的な部分ばかりで恐縮ですが……。

拡張機能の追加方法については、上記の環境設定の中でも書いてあったので、割愛します（割愛してばっか）。

### C/C++
これは私のつまづきポイントのところでもちょっと紹介しましたね。
C/C++で書いたコードの間違いなんかを指摘してくれるので、とっても便利なやつです。

### Code Spell Checker
例えば「haloo」とかって書いたら「おいおい、そんな英語はないぜ？」と注意してくれます。
一つの誤字でプログラムは動かなくなてしまうので、結構役に立ちます。

### Git History
Gitのログなどを、とっても見やすく表示してくれます。

### Japanese Language Pack for Visual Studio Code
VScodeを日本語にしてくれます。

### Python
Pythonを使うなら欠かせない拡張機能です。コードの間違いを発見してくれたり、いろいろしてくれます。

### Pylance
上のPythonではできない、かゆいところに手が届くようなことをやってくれます。詳しくは以下の記事をどうぞ。

[[Python]PylanceのVS Code拡張機能をさっそく使ってみた。](https://qiita.com/simonritchie/items/33ca57cdb5cb2a12ae16)

### zenkaku
プログラマーの敵、全角を発見してくれます。全角のせいで動かない……ということは、誰しもが一度は通ることのような気がします。

## VScodeの各種設定
最後に私がしている設定についてご紹介します。

### Editor: Insert Spaces
私はTabを押すとTabが挿入されるようにしています（デフォルトは空白が４つ入る）。好みの問題です。

### Editor: Render Whitespace
空白文字が表示されるようになります。私はboundaryにしています。
これで、タブなのかとかもわかりますし、変なところに空白がないかもわかります。

### Editor: Word Wrap
横に長いコードを折り返して表示するかを設定できます。私はonにしています。好みの問題です。

### Files: Auto Save
オートセーブをするかどうかを設定できます。私はafterdelayにしています。
オートセーブのメリットはもちろんセーブのし忘れや突然PCが落ちたときの対策ですが、デメリットとして編集を戻せなくなることがあることは覚えておかなければなりません。これも好みの問題です。

### Files: Eol
既定の改行文字を変更できます。
実は改行文字は環境によって違うことがあるのですが、そういうのは怖いので、\nにしています。

## 最後に
ということで、あくまで備忘録という感じですが、誰かの役に立ったらうれしいと思います。
また、もっと良い方法があったりしたら、教えていただけたら嬉しいです（特に、私のつまづきポイントについて）。