Heavy Watal

VSCode — Microsoft製テキストエディタ

Microsoftが開発しているGUIテキストエディタ。 Atom を継ぐもの。

https://code.visualstudio.com

フォルダ単位で開く

VSCodeはファイルごとにひとつのウィンドウを開くのではなく、 フォルダ単位でウィンドウを開き、複数のファイルをタブで表示するのが基本。 そうは言ってもホームフォルダまるごととかではなく、 次のような機能を効率的に使えるような、ちょうどいい階層のフォルダを開きたい。

例えば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 矩形(ブロック)選択
ks Keyboard Shortcuts 一覧
kr 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

AI coding assistant. プログラミングはもちろんのこと、論文書きやメール書きも含めテキスト仕事なら何でもサポートしてもらえる。 対話形式もできるけど何より補完機能が便利。 Gitを触ったことがない人にもおすすめ。 いろいろな利用法があるけどここに書くのはVSCode上の。

Microsoft製のCopilotだけを使うわけではなく(というか選択肢に無い?)、 ChatGPT や Claude のようないくつかの大規模言語モデルから選択できる。

設定

https://github.com/features/copilot/plans
Free でも使えるけどかなり限定的。 GitHub Education に登録すれば Pro 相当の機能を無料で使わせてもらえる。

  1. GitHub にアカウントを作る。 このときはGmailでも何でもいいので普段よく使うアドレスを登録。

  2. GitHub Education にも登録する。 ここでは教育機関のメールアドレスが必要: @tohoku.ac.jp, @hogwarts.edu, etc. 学生証や職員証の写真をアップロードする必要があったかも。

  3. VSCode を起動して GitHub Copilot 拡張をインストール。 x copilot

  4. 右上の人型アイコン or 上部中央右の Copilotボタン から “Sign in with GitHub to Use GitHub Copilot” みたいなメニューを選択。 ウェブブラウザに飛ばされるので指示に従って認証。

  5. 試しに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” と頼んでみる:

    私はこのメッセージがあなたに届くことを願っています。私は研究の旅を通じてあなたの貴重なサポートと指導に感謝の意を表したく、この手紙を書いています。あなたの指導は私の学問的な道を形作る上で非常に重要であり、私に提供してくださった機会に心から感謝しています。

設定確認・変更:

使い方

とにかく自動補完をオンにしてテキストを書く。

key command description
esc Hide Inline Suggestion 却下
tab Accept Inline Suggestion 全部採用
Accept Next Word Of … 部分採用
\ Trigger Inline Suggestion 自動補完されないときに手動で
^ Open Completions Panel 別パネルで補完候補を表示
i Toggle Inline Chat その場で簡易チャット
^i Toggle Chat 右側にバーを開いてチャット
i Toggle Copilot Edits 複数ファイルにまたがる変更とか

R

https://code.visualstudio.com/docs/languages/r

人にはRStudioを薦めるけど個人的にはこっちのほうが使いやすい。

  1. languageserver をインストールする:
    install.packages("languageserver")
    
  2. R extension for VSCode をインストール。
  3. R session watcher の設定。
    1. VSCodeの設定に "r.sessionWatcher": true を追加して再起動。 “Create R terminal” コマンドで専用コンソールを立ち上げる場合はこれだけ。
    2. Integrated Terminalから手動でRを立ち上げるような場合、 設定ファイルを明示的に読み込む必要があるので .Rprofile に追記:
      if (interactive() && Sys.getenv("TERM_PROGRAM") == "vscode") {
        source("~/.vscode-R/init.R")
      }
      
      tmuxTERM_PROGRAM を上書きすることに注意。

ここまでやれば View()help() などをVSCodeで表示できる。 以下はお好みで。

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 を起動する設定も可能。