VSCode — Microsoft製テキストエディタ
Microsoftが開発しているGUIテキストエディタ。 Atom を継ぐもの。
フォルダ単位で開く
VSCodeはファイルごとにひとつのウィンドウを開くのではなく、 フォルダ単位でウィンドウを開き、複数のファイルをタブで表示するのが基本。 そうは言ってもホームフォルダまるごととかではなく、 次のような機能を効率的に使えるような、ちょうどいい階層のフォルダを開きたい。
- ⇧⌘e: 左側にツリー表示
- ⇧⌘f: ファイル横断検索
- ⌘p: ファイル名を検索して開く
- 後述の GitHub Copilot に文脈を読んで編集してもらう
例えばGitを使っている人はリポジトリ単位で開く。 Git Project Manager という拡張を入れておくと ⌥⌘p から選択できる。
Keyboard Shortcuts
https://code.visualstudio.com/docs/getstarted/keybindings
| key | command | description | 
|---|---|---|
| ⇧⌘p | Command Palette | これさえ覚えれば | 
| ⌥⌘p | Open Git Projects | GPMを使ってディレクトリを開く | 
| ⌘p | Search files by name | プロジェクト内の別ファイルを開く | 
| ⇧⌘f | Find in Files | プロジェクト内をファイル横断で検索 | 
| ⇧⌘e | Show Explorer | プロジェクト内のファイル一覧 | 
| ⇧⌘x | Show Extensions | 拡張一覧。インストールもここから | 
| ⌘/ | Toggle Line Comment | コメントアウトしたり外したり | 
| ^` | Toggle Terminal | |
| ^⏎ | Run Selected Text | エディタからターミナルにテキストを送る(要設定) | 
| ⌥↓ | Move line down | |
| ⇧⌥↓ | Copy line down | |
| ⌥⌘↓ | cursorColumnSelectDown | 矩形(ブロック)選択 | 
| ⌘k⌘s | Keyboard Shortcuts | 一覧 | 
| ⌘k⌘r | Keyboard Shortcuts Ref. | 抜粋PDF | 
設定ファイルは
~/.config/Code/User/keybindings.json
    {
        "key": "ctrl+enter",
        "command": "workbench.action.terminal.runSelectedText",
        "when": "editorTextFocus && resourceExtname != .ipynb"
    },
環境設定
https://code.visualstudio.com/docs/getstarted/settings
いつもの ⌘, キーで設定画面を起動。
設定ファイルは
~/.config/Code/User/settings.json
拡張パッケージ
https://code.visualstudio.com/docs/editor/extension-marketplace
GitHub Copilot
- https://github.com/features/copilot
- https://marketplace.visualstudio.com/items?itemName=GitHub.copilot
AI coding assistant. プログラミングはもちろんのこと、論文書きやメール書きも含めテキスト仕事なら何でもサポートしてもらえる。 対話形式もできるけど何より補完機能が便利。 Gitを触ったことがない人にもおすすめ。 いろいろな利用法があるけどここに書くのはVSCode上の。
Microsoft製のCopilotだけを使うわけではなく(というか選択肢に無い?)、 ChatGPT や Claude のようないくつかの大規模言語モデルから選択できる。
設定
- https://github.com/features/copilot/plans
- https://docs.github.com/copilot/reference/ai-models/model-comparison
Free でも使えるけどかなり限定的。 GitHub Education に登録すれば Pro 相当の機能を無料で使わせてもらえる。
- 
GitHub にアカウントを作る。 このときはGmailでも何でもいいので普段よく使うアドレスを登録。 
- 
GitHub Education にも登録する。 ここでは教育機関のメールアドレスが必要: @tohoku.ac.jp,@hogwarts.edu, etc. 学生証や職員証の写真をアップロードする必要があったかも。
- 
VSCode を起動して GitHub Copilot 拡張をインストール。 ⇧⌘x copilot
- 
右上の人型アイコン or 上部中央右の から “Sign in with GitHub to Use GitHub Copilot” みたいなメニューを選択。 ウェブブラウザに飛ばされるので指示に従って認証。 
- 
試しにVSCodeでテキストファイルを新規作成 ⌘n して適当に書いて改行⏎: Dear Professor Makino, 1秒待つと次のような文がグレーで表示される: I hope this message finds you well. I am writing to express my gratitude for your invaluable support and guidance throughout my research journey. Your mentorship has been instrumental in shaping my academic path, and I am truly thankful for the opportunities you have provided me. tab で採用。 続けて ⌘i で簡易チャットを開き “Translate it to Japanese” と頼んでみる: 私はこのメッセージがあなたに届くことを願っています。私は研究の旅を通じてあなたの貴重なサポートと指導に感謝の意を表したく、この手紙を書いています。あなたの指導は私の学問的な道を形作る上で非常に重要であり、私に提供してくださった機会に心から感謝しています。 
設定確認・変更:
- GitHub上でのCopilotの設定
- VSCode上部
右のV字をクリック → “Configure Code Completions…”: - “Status: Ready (Disabled)” になってたらその下の “Enable Completions” で有効化。
- “Edit Keyboard Shortcuts…”
- “Edit Settings…”
 
使い方
大きく3つの方法がある。 いずれにせよ、開いているファイルや選択中のテキストを文脈として読み取ってもらえる。 AIを使う、というと一般にはチャットのイメージが強いだろうけど、 質問や命令を考える必要さえない自動補完こそがズボラな人間の強力な味方。
- 
チャット用のサイドバーで質問や編集を行う。 3つのモードがある: - Ask: 質問に答えてもらうだけ。
 e.g., “How do you remove axis ticks in ggplot?”, “Explain this code”.
- Edit: 編集を提案してもらう。ユーザーが差分を確認して保存。
 e.g., “Correct grammatical and typographical errors”, “Translate it to Japanese”.
- Agent: 目的だけを伝えて、ファイルの編集もいちいち確認せず任せる。
 チャットにフォーカスして ⌘. でモード選択、 ⌥⌘. でモデル選択のリストが開く。 
- Ask: 質問に答えてもらうだけ。
- 
⌘i で Inline Chat を開き、 上記 “Ask” や “Edit” に相当することをその場で行う。 
- 
とにかく自動補完をオンにしてテキストを書き、続きを Inline Suggestion してもらう。 
| key | command | description | 
|---|---|---|
| esc | Hide Inline Suggestion | 却下 | 
| tab | Accept Inline Suggestion | 全部採用 | 
| ⌘→ | Accept Next Word Of … | 部分採用 | 
| ⌥\ | Trigger Inline Suggestion | 自動補完されないときに手動で | 
| ⌘i | Toggle Inline Chat | その場で簡易チャット | 
| ^⌘i | Toggle Chat | 右側にバーを開いてチャット | 
R
https://code.visualstudio.com/docs/languages/r
人にはRStudioを薦めるけど個人的にはこっちのほうが使いやすい。
- languageserver
をインストールする:
install.packages("languageserver")
- R extension for VSCode をインストール。
- R session watcher
の設定。
- VSCodeの設定に "r.sessionWatcher": trueを追加して再起動。 “Create R terminal” コマンドで専用コンソールを立ち上げる場合はこれだけ。
- Integrated Terminalから手動でRを立ち上げるような場合、
設定ファイルを明示的に読み込む必要があるので .Rprofileに追記:tmux がif (interactive() && Sys.getenv("TERM_PROGRAM") == "vscode") { source("~/.vscode-R/init.R") }TERM_PROGRAMを上書きすることに注意。
 
- VSCodeの設定に 
ここまでやれば View() や help() などをVSCodeで表示できる。
以下はお好みで。
- VSCodeの設定
- "r.rmarkdown.enableCodeLens": false: CodeLensは邪魔。
- r.session.viewers.viewColumn: interactive viewers をどこで表示するか。- Active: 既存editor group内の新規タブ。
- Two,- Beside: 新規editor groupを作って表示。2つの違いは不明。 左右ではなく上下に分割して表示させるには- "workbench.editor.openSideBySideDirection": "down"。 See vscode-R#1126.
- Disable: ネイティブに任せる。
- デフォルト: {plot: Two, browser: Active, viewer: Two, pageViewer: Active, view: Two, helpPanel: Two}
 
 
- Rの設定。 ほとんどの項目はVSCode側で設定できる。 それらをどうしてもRから上書きしたいときに使う。
- 図をどうやって描画するか:
- デフォルト: png()で書き出してVSCode内に表示。 raggを使うオプションが欲しいところだけど無い。 描画領域のサイズ変化に追従する機能なども無い。
- httpgd を使ってVSCode内に表示。
install.packages("httpgd")した上で VSCodeの設定に"r.plot.useHttpgd": trueを追加。 SVG形式なので要素数が多くなるほど急激に重くなり、例えばdiamondsの散布図でも使い物にならない。 PNGも選べるようにunigdを開発中らしい。
- 外部ターミナルでRを起動するのと同じように独立XQuartzなどで表示。
上記 viewColumnを"plot": "Disable"に設定する。
 
- デフォルト: 
- IPython
のようにコンソール上での補完や色付けなどを強化したければ
radian
を入れる。
設定
はRコードの形で ~/.config/radian/profileに書く。
Python
https://code.visualstudio.com/docs/languages/python
Microsoft公式パッケージが提供されていて、がっちりサポートされている感じ。
- Python
- とりあえずこれを入れれば下記の依存パッケージも自動で入るはず。
- Pylance
- 補完や型チェックなどを担う language server.
- 中では Pyright が使われている。
- 警告を非表示にするには次のように書く:
# pyright: reportUnusedVariable=false設定項目: https://github.com/microsoft/pyright/blob/main/docs/configuration.md 
- Jupyter
- Jupyter notebook support
Glossary
- IntelliSense
- Microsoft製の補完システム。 各種 language server から情報を受け取る。
- CodeLens
- 補助的な情報を表示する機能。
- ファイルの内容と区別しにくい形で挿入されてすごく邪魔なので確実に切る。
- Integrated Terminal
- VSCode内で開けるターミナル。^`
- シェルを介さず直接 tmux を起動する設定も可能。