VS Codeはマイクロソフト社のテキスト・エディタ。テキスト・エディタの中ではSublimeやAtomが主流だったけど、今では一番人気のテキスト・エディタ。無償だし、マイクロソフトも力を入れていて、サポートも結構充実している。
私はもともとMatlabでプログラミングを初めて、その後にPythonに移ったのでMatlabのエディタに似ているということでSpyderをしばらく使っていたけど、2年ほど前にVS Codeに乗り換えた。
使い始めた頃はPython-Jupyterの使用環境はそれほど良くはなかったけど、だいぶ改善されてきている。
仕事・研究で使うプログラミング言語はもっぱらPythonだけど、必要ならRもVS Codeで使える。Markdownは時々使うけど、書きながら変換後の状態を見ながらかけるので便利。趣味でhtml/ css/ javascript使ってWebsiteを作るので、多言語対応は嬉しい。
エクステンションは豊富でマイクロソフトのマーケットプレイスにあるが、VS Code内から直接検索・ダウンロードが可能。エディタの左側のエクステンションのアイコンから。
インデントの先頭の空白部分に色をつけてくれるエクステンション。Pythonではインデントを使ってブロックを定義するので、インデントが見やすくなる。
"indentRainbow.colors": ["rgba(0,125,255,0.03)", "rgba(0,0,0,0.03)"],
初期設定では7色に色分けされ、色も派手なので、私は薄い青と薄い茶色の二色のストライブに設定。
豊富なカラー・テーマがあるので、色々試せるし、テーマ変更も簡単。バックグランドが白、淡めの色使いが好みなので、Visual Studio Lightに設定。
"workbench.colorTheme": "Visual Studio Light",
コード内のスペルミスを指摘してくれる。医学辞書や英語以外の言語の辞書もある。単語登録も簡単にできる。
コメントを重要度と種類によって色分けすることができる。コメント直後に!、? 、* 、TODOの記号・単語を入れることでコメントに色がつけられます。
関数やクラス用のコメントのフォーマットを自動作成してくれます。
環境設定の自由度が高く、設定も分かりやすい。コマンドパレット(cmd-shift-p)からsettingとタイプすると環境設定の画面が表示される。GUIとjson fileを直接書き換える2つの方法が用意されている。json fileで慣れたほうが、細かい設定ができると思うのでおすすめ。
settings.jsonのファイルを開くと、自動的に画面が二分割され、左がデフォルトの設定、右が自分の設定なので、デフォルトをみるとどのように書き換えればいいかも分かりやすい。
設定はユーザ、ワークスペース、フォルダ・レベルで変えることができるのも便利です。基本的にはユーザ・レベルで書いたものがすべてのワークスペースやフォルダの設定に反映されます。
設定はコンピュータごとにGitHubなどを通して同期もできる。Python Interpretar Pathなどのはコンピュータごとに設定が可能。
"python.defaultInterpreterPath": "/Users/***/***/***/bin/python",
"[python]": {
"editor.defaultFormatter": "ms-python.python"
},
"python.linting.enabled": true,
"python.linting.flake8Args": [
"--ignore= E121, E123, E125, E127, E128, E129, E131, E133,
E202, E302, E305, E501, E265, E722, W391, W503, F821"
],
"python.linting.flake8Enabled": true,
言語別にスニペットの設定が簡単にできます。例えばPython用であれば、コマンドパレットからsnippetとタイプして、'snippet: configure user snippets'を選択し、その後'python'とタイプするとpython.jsonが表示されます。
"import matplotlib": {
"prefix": "impplt",
"body": "import matplotlib.pyplot as plt",
"description": "import matplotlib"
},
"For Loop Dict": {
"prefix": "fordict",
"body": [
"for ${1:key}, ${2:value} in ${3:dict}.items():",
"\t"
],
"description": "For Loop Dict"
},
上はスニペットの一例。1つ目はmatplotlibのインポート。これ以外にもよく使うimport文を'imp***'として登録してある。エディタ上で'imp'とタイプした時点で登録してあるimport文がすべて候補にでるので、***の内容は覚えていなくても大丈夫。
2つ目は辞書型のデータをループする時のスニペット。エディタ上で'for'とタイプするとfordictや他のfor loopのスニペットが候補に上がる。このスニペットを選択すると、定型文にkey, value, dictの変数が入って表示される。タブでカーソルが順番に移動するので、必要に応じて変数を変更できる。
二年ほど前に使い始めたときはPython(Jupyter)での使い勝手は必ずしも良くなかった。変数エクスプローラが安定しなかったり、