#初心者
#windows
#初めて
#WSL
#VSCode

Windows10でWSLとVSCodeを使ってC++プログラミング環境を整える

プログラミングほとんどしたことがないか、Windowsでの開発環境を整えたことがない人向け。
新入生に競技プログラミング環境を作ってもらうために書きました。
私はよくガバをするので突っ込み待ってます。

Linuxをインストールする

Windowsの場合プログラムをコンパイラを導入する方法は、主に2通りある。
一つ目は、コンパイラのインストーラをインストールした後インストールする方法だ。  
わざわざWebで検索する必要がある上に、インストールが二度手間である。
Linuxの使い方が分からない方は自分で検索してください。
 
二つ目はWindows Subsystem for Linuxを利用する方法である。
簡単に言うと、WindowsにLinuxが入れられるというもので、Microsoft Storeから好きなOSをダウンロードできる。
Linuxを使って、Windows上のファイルを触ることができるのでちょっと便利。

Linuxとは

Microsoft Store 2018_04_04 19_41_38.png

  
  
手順としては、Microsoft Storeで好きなOS(2018/5/27現在は上の5種類+Ubuntu18.04から選べる)を検索してインストール。
archはこうやって入れられるそう(僕はダウンロードしたファイルが死んでいて出来なかった。)

ここでは、Ubuntuの画像ですがUbuntu18.04などでも同じです。
(ただし、Ubutnu18.04 の場合、apt uograde ができないなどの現象が見られたので、Ubuntu 18.04 on WSL で ebtable のアップデートがエラーになる備忘録 こちらのコマンドを実行した方がよさそうです。)

Microsoft Store 2018_01_28 16_28_06.png

初めて立ち上げると、ユーザ名とパスワードの設定を2回聞かれるので2回とも同じものを入力すると設定終了。
  
  
万が一、インストールできなければ、「コントロールパネル」を立ち上げて、「プログラム」の中にある「プログラムと機能」を開いて、「Windowsの機能の有効化または無効化」を開く。  
真ん中より下の方に「Windows Subsystem for Linux」という項目があるのでそこにチェックが入っているかを見る。

スクリーンショット (100).png

あとは、
sudo apt update
とうってから
sudo apt upgrade
とうってアップデートしておく。
一応C言語、C++を使うと思うので、

sudo apt install gcc
とうってから、
sudo apt install g++
と叩けばコンパイラのインストールも終わり。

上級者向け

ターミナルの見た目がちょっと殺風景である。
それに、起動時のデフォルトが/home/~なのでWindowsのファイル(/mnt/cがcドライブ)を扱いにくい。

なので、デフォルトを変えたい場合は、ConEmuがある。

ConEmu

また、ubuntuのターミナルをそのまま動かしたい場合は
お前らのWSLはそれじゃダメだ
これのようにすると、Linuxのターミナルが使える。(Ubuntu 18.04でも実行できましたが、Windows側のショートカット用シェルがうまく実行できなくなっていました)

とりあえず、WindowsのファイルをLinuxのものでいじれるようになりました。

エディター

エディターは一番宗教戦争になりやすいですが、私は普段VSCodeを使っているのでVSCodeで進めていきたいと思います。
難しい設定をしなくとも便利に使えるので初心者に向いてたりするとおもう。 

VSCodeのインストール 

VSCodeは大体のOSで使えるので似たような設定になるかと思います。

VSCode
ここからインストール。
特に難しいことはなかったはず・・・。

起動するターミナルの設定

次に、VSCodeではCtrl+@でターミナルが起動できるのだが、初期設定ではWSLではなくPowerShellになっているので切り替える。
左上のファイル>基本設定>設定 とクリックしていくとユーザー設定が出てくる。

※2018/11/23追記

設定を開くとGUIで設定するようになっているので
Settings - PGbattle - Visual Studio Code 2018_11_23 13_51_02.png
右上の ・・・ をクリックしてsettings.jsonを開くと同じ画面になります。

スクリーンショット (101).png

上部の検索バーで
terminal.integrated.shell.windows
と検索すると

settings.json - Visual Studio Code 2018_05_27 22_02_24.png

このような感じになると思う。
terminal.integrated.shell.windowsの部分にカーソルを合わせると、ペンのマークが出てくると思うのでそれをクリック。
右のタブに移ると思うので、

"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\bash.exe"

というように書くとLinuxを起動させるようになる。
VSCodeでターミナルを開く利点としてはVSCodeで開いているディレクトリをカレントディレクトリの状態でターミナルが開けることです。

デフォルトシェルを変更したい

上記のように書くと、VSCodeでは強制的にbashが起動されるので、fishやzshを使用したい場合は

    "terminal.integrated.shell.windows": "ubuntu1804.exe",
    "terminal.integrated.shellArgs.windows": ["run", "/usr/bin/zsh"],

起動するディストリビューションもshellも指定できる。
ディストリビューションを指定した場合、shellも指定してあげないと、VSCodeで開いているディレクトリをカレントディレクトリで開いてくれないです。

その他おすすめ設定

//ファイルをセーブするごとにコードを整えてくれる
    "editor.formatOnSave": false,
//行を書き終えるごとに行のコードを整えてくれる
    "editor.formatOnType": true,
//ペーストしたときにコードを整えてくれる
    "editor.formatOnPaste": true,

//予測をどのときに出すのか
    "editor.quickSuggestions": {
        "other": true,
        "comments": true,
        "strings": true
    },

//自動保存をしてくれる
    "files.autoSave": "afterDelay",

拡張機能

次に補完などができるようになる拡張機能を入れていく。プログラミングがしやすくなるので入れるべき。
VSCodeの左端の列にある拡張機能を押す。

settings.json - Visual Studio Code 2018_05_27 22_04_59.png

こんな感じになると思うので、上の検索部で入れたい拡張機能を検索できる。
「C/C++」など自分の使う言語を検索すると大体出てくるので大体一番上に出てくるものをインストールするといいです。(C/C++なら Microsoft の C/C++ あたり )
しかし、MinGW向けのものもあるので、そこの確認はお願いします。
容量があるならば、とりあえず気になるものを全部入れてもいいかもしれない。

僕のおすすめの拡張
- Bracket Pair Colorizer
- vscode-icons
- zenkaku
- Clipboard Ring

VSCodeのショートカットキー

https://qiita.com/TakahiRoyte/items/cdab6fca64da386a690b

Ctrl+sで上書き保存とか、Ctrl+hで文字の差し替えとかCtrl+@でターミナル起動ぐらいは覚えると便利