Visual Studio Code

https://code.visualstudio.com/

WSL で使う場合

https://learn.microsoft.com/ja-jp/windows/wsl/tutorials/wsl-vscode

VSCode 本体と拡張機能のインストール

https://code.visualstudio.com/download

  1. VSCode を (WSL ではなく) Windows にインストールする。

  2. インストール中に “追加タスクの選択” が求められたときは、 “PATH への追加” オプションをオンにする。

  3. Remote Development 拡張機能をインストールする。

Remote Development 拡張機能なしで WSL にアクセスすることは非推奨とされている。

Linux ディストリビューションの更新と必要なパッケージのインストール

sudo apt update
sudo apt install wget ca-certificates

プロジェクトを開く

WSL から code . 、 もしくは VSCode から ControlShiftP でコマンドパレットを開いて “WSL: Connect to WSL” を選択。

なお、WSL から VSCode を立ち上げた場合、 ログインシェルの設定 (~/.bash_profile, ~/.zprofile)は読まれない。

環境設定

VSCode 本体は Windows のものなのでユーザー設定も Windows 側。 WSL で使う場合これを WSL 用の設定が上書きする。

  • 拡張機能は .vscode/extensions/
  • 環境設定は /AppData/Roaming/Code/User/settings.json
  • キーボードショートカットは /AppData/Roaming/Code/User/keybindings.json

WSL で VSCode を使う場合、ユーザーホームに .vscode-server/ が作られてこの中で設定をいじったりする。

  • 拡張機能は .vscode-server/extensions/
  • 環境設定は .vscode-server/data/Machine/settings.json

Mac で使う場合

VSCode のインストール

https://code.visualstudio.com/download

  1. Mac 版の VSCode をダウンロードして解凍

  2. Visual Studio Code.app/Applications フォルダに移動

terminal から VSCode を起動する設定

code の実行ファイルは /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code にある。 ここに $PATH を通せばいい。

公式のやり方
VSCode を起動してコマンドパレットを開き (CommandShiftP)、 “shell” と検索して出てくる “Shell Command: Install ‘cpde’ command in PATH” をクリック。
これで上記の実行ファイル PATH が /usr/local/bin/ にシンボリックリンクされる。
もしくは
.zshrc とかに上記の PATH を通す。

環境設定

Mac の VSCode の環境設定ファイルは /Library/application Support/Code/User/settings.json にある。

拡張機能

SSH

https://code.visualstudio.com/docs/remote/ssh-tutorial

マシン自体に SSH の設定をしてあれば、 拡張機能をインストールするだけで SSH ホストのファイルにアクセスできる。 コマンドパレットを開いて “ssh” で検索し、“Romote-SSH: Connect to host…” を選択して接続先を選ぶだけ。

WSL で使う場合すでに Remote で使っている扱いになるからか SSH できない…?

  • これは Windows 側のホームを参照してコマンドプロンプトから ssh しようとするかららしい。
  • 解決策を調べてみると鍵を Windows ホームに置くとか出るけどほんとにそれでええんか?
  • WSL で動かしてるときは WSL のホームを参照する、みたいな設定できないだろうか。
    • これは偉大な先人たちが試しているけどどうも settings.json の設定では無理らしい。
    • windows 側に .bat おいて wsl の ssh 使わせれば行けるらしいがそこまでするのは気が引ける。
  • ということで WSL のホームにある ~/.ssh/ を Windows 側のホームにコピーしてしのぐ。

Quarto

https://quarto.org/docs/tools/vscode.html

準備

  1. VSCode に Quarto の拡張機能をインストールする。

  2. Quarto CLI をマシンにインストールする。

    ## Mac なら homebrew で
    brew install --cask quarto
    
    ## WSL は .deb を落としてくるのが正攻法?
    sudo curl -LO https://quarto.org/download/latest/quarto-linux-amd64.deb
    # sudo apt-get install gdebi-core  # if needed
    sudo gdebi quarto-linux-amd64.deb

Render

右上の Render ボタンから。 もしくは Control/CommandShiftK

R

  1. R に languageserver を入れる。

    install.packages("languageserver")
  2. VSCode に R の拡張機能を入れる。

  3. 環境設定ファイルに追記:

    settings.json
    {
      "r.sessionWatcher": true
    }
    keybindings.json
    # ctrl+enterでコマンドをターミナルに送るための設定
    [
      {
        "key": "ctrl+enter",
        "command": "workbench.action.terminal.runSelectedText",
        "when": "editorTextFocus"
      }
    ]
  4. コマンドパレットを開いて “R: Create R terminal”