🛠️

VSCodeのおすすめ設定・拡張機能

2022/08/11に公開

はじめに

本記事では,筆者の MacBook Pro にインストールされている Visual Studio Code,通称VSCodeの設定・拡張機能を紹介していきたいと思います.

余談

筆者は普段下記の様な AI を作成したりしています!
興味があればぜひ覗いていってみてください↓

環境

PC MacBook Pro (16-inch, 2019)
OS Monterey
CPU 2.3 GHz 8コアIntel Core i9
メモリ 16GB

VSCodeの設定

本節では,全て + ,Settingsを開いて検索することで設定をしていきます.

保存時に行末の余分なスペースを削除する

検索窓にfiles.trimTrailingWhitespaceと検索し有効にします.
trimTrailingWhitespace

保存時にファイル末尾に改行を入れる

検索窓にfiles.insertFinalNewlineと検索し有効にします.
insertFinalNewline

汎用的な拡張機能

本節では,プログラミング言語にとらわれない汎用的なVSCodeの設定及び拡張機能を紹介します.

Chose A License

VSCodeで GitHub Licenses API を利用してプロジェクトのライセンスを簡単に作成することができます.

公式ドキュメントはこちら↓

license

Error Lens

エラー表示を問題タブではなくインライン表示しハイライトをしてくれる便利な拡張機能です.

公式ドキュメントはこちら↓

error

flake8との連携

まず,flake8の path を確認します.

terminal
which flake8
# /usr/local/bin/flake8

VSCode + ,Settingsを開いてflake8と検索し,筆者の場合は以下の設定にしました.
flake8

Excel Viewer

エクセルやCSVファイルをVSCode上で見やすくしてくれる拡張機能です.業務上CSVファイルを扱うことが多いので重宝しています.

公式ドキュメントはこちら↓

excel

Git Graph

VSCode上でGitの履歴を確認することができる便利な拡張機能です.

公式ドキュメントはこちら↓

gitgraph

gitignore

選択した言語の.gitignoreを自動で生成してくれる便利な拡張機能です.

公式ドキュメントはこちら↓

indent-rainbow

インデントされたものをカラフルに彩ってくれるので見やすくなり,ミスが減る様な拡張機能です.

公式ドキュメントはこちら↓

rainbow

Material Icon Theme

VSCodeフォルダやファイルのアイコンを変更することができます.

公式ドキュメントはこちら↓

folder

Trailing Spaces

行末の余分なスペースやタブを赤く可視化してくれる便利な拡張機能です.

公式ドキュメントはこちら↓

zenkaku

コーディングに不必要な全角スペースを白く可視化してくれる便利な拡張機能です.

公式ドキュメントはこちら↓

zenkaku

Python向けの拡張機能

Python

Pythonを使用するにあたって必要なものです.

公式ドキュメントはこちら↓

Python

Python Environment

Python仮想環境をGUIで確認・操作することが可能です.

公式ドキュメントはこちら↓

PyEnv

Python Indent

Python特有のインデントブロックを自動で適用してくれる便利な拡張機能です.

公式ドキュメントはこちら↓

PyIndent

Jupyter

VSCode上でJpyter Notebookを扱うために必要な拡張機能です.

公式ドキュメントはこちら↓

Jupyter

autoDocstring

Pythonコード内にコメントを書いて残す際のテンプレートを出力してくれます.

公式ドキュメントはこちら↓

autoDoc

PyTorch Snippets

Python機械学習をさせるのに利用するPyTorchのスニペットです.PyTorchを使用する方はぜひインストールしましょう.

公式ドキュメントはこちら↓

PyTorchSnip

期待しない動作

現在のバージョン ( 1.0.2 ) では,期待しない動作をするコードも存在しています.
必要なければ読み飛ばしてください.

vscode-pytorch/snippets/pytorch.json
# pytorch:init
def init_weights(m) -> None:
    """Initialize model weights. Defaults to True.
    Args:
        m (nn.Module): The model.
    """
    classname = m.__class__.__name__
    if classname.find("Linear") != -1 or classname.find("Bilinear") != -1:
        nn.init.kaiming_uniform_(
            a=2, mode="fan_in", nonlinearity="leaky_relu", tensor=m.weight
        )
        if m.bias is not None:
-           nn.init.zeros(tensor=m.bias)
+           nn.init.zeros_(tensor=m.bias)

    elif classname.find("Conv") != -1:
        nn.init.kaiming_uniform_(
            a=2, mode="fan_in", nonlinearity="leaky_relu", tensor=m.weight
        )
        if m.bias is not None:
-           nn.init.zeros(tensor=m.bias)
+           nn.init.zeros_(tensor=m.bias)

    elif (
        classname.find("BatchNorm") != -1
        or classname.find("GroupNorm") != -1
        or classname.find("LayerNorm") != -1
    ):
        nn.init.uniform_(a=0, b=1, tensor=m.weight)
-       nn.init.zeros(tensor=m.bias)
+       nn.init.zeros_(tensor=m.bias)

    elif classname.find("Cell") != -1:
        nn.init.xavier_uniform_(gain=1, tensor=m.weiht_hh)
        nn.init.xavier_uniform_(gain=1, tensor=m.weiht_ih)

        nn.init.ones_(tensor=m.bias_hh)
        nn.init.ones_(tensor=m.bias_ih)

    elif (
        classname.find("RNN") != -1
        or classname.find("LSTM") != -1
        or classname.find("GRU") != -1
    ):
        for w in m.all_weights:
            nn.init.xavier_uniform_(gain=1, tensor=w[2].data)
            nn.init.xavier_uniform_(gain=1, tensor=w[3].data)

            nn.init.ones_(tensor=w[0].data)
            nn.init.ones_(tensor=w[1].data)

    elif classname.find("Embedding") != -1:
        nn.init.kaiming_uniform_(
            a=2, mode="fan_in", nonlinearity="leaky_relu", tensor=m.weight
        )

番外編

Powerlevel10k

ターミナルのデザインを自分好みに変更することができます.
VSCodeのターミナルにも適用させることができるのでぜひ試してみてください!!

公式ドキュメントはこちら↓

powerlevel10k

以下のコマンドで設定することができます↓

$brew install romkatv/powerlevel10k/powerlevel10k
$echo "source $(brew --prefix)/opt/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc

おわりに

本記事では,筆者が実際に MacBook Pro で使用しているVSCodeの設定及び拡張機能についてまとめました.
良いものが見つかり次第随時更新していく予定なので,ご意見お待ちしています!!

GitHubで編集を提案

Discussion