VSCode + WSL
この記事はQiitaから移転されました。
Windows Subsystem for Linux(WSL)で構築した開発環境をWindowsのVSCodeから利用するための覚え書き。解説というよりは試行錯誤の記録環境構築を終えた項目を追記していきます。
追記
VSCodeの更新によりRemote - WSL拡張を使用できるようになりました。これにより、言語ごとにVSCode + WSL向けの環境を構築する必要がなくなります。
WSLの基本
(> ...
: コマンドプロンプト, $ ...
: WSL)
コマンドプロンプトからの起動
> wsl
コマンドプロンプトからのコマンド実行
> wsl <command> > wsl ls -la
WindowsとWSLのパスの変換(Windows 10 バージョン1803以降)
$ wslpath C:/users /mnt/c/Users $ wslpath -w /mnt/c/Users C:\Users
Windowsから見たルートディレクトリ(<user>
はWindowsのユーザ名, <...>
はインストールによって異なるランダムな文字列, Ubuntuの場合)
C:/Users/<user>/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_<...>/LocalState/rootfs
Linuxルート下のファイルをWindowsから変更するとファイルが壊れることがあるので注意すること。
統合ターミナル
VSCodeのユーザー設定でシェルのパスにwsl.exe
を指定します。
"terminal.integrated.shell.windows": "C:/Windows/System32/wsl.exe"
Git
WSLでgitをインストールします。WSLGitのバイナリwslgit.exe
をダウンロードし適当なディレクトリに置きます。VSCodeのユーザー設定でwslgit.exe
へのパスを設定します。
"git.path": "C:/bin/wslgit.exe"
C/C++ IntelliSense
WSLでgcc
, g++
を、VSCodeでC/C++拡張をインストールします。
ワークスペースの設定ファイル.vscode/c_cpp_properties.json
にWSL向けの設定を書きます。
例
{ "configurations": [ { "name": "WSL", "intelliSenseMode": "gcc-x64", "compilerPath": "/usr/bin/gcc", "includePath": ["${workspaceFolder}/**"], "defines": [], "cStandard": "c11", "cppStandard": "c++17" } ], "version": 4 }
- vscode-cpptools/c_cpp_properties.json.md at master · Microsoft/vscode-cpptools
- vscode-cpptools/Windows Subsystem for Linux.md at master · Microsoft/vscode-cpptools
Rust Language Server (RLS)
VSCodeでRust (rls)拡張をインストールします。
"rust.useWSL": true
rubocop
:thinking:
WSLでrubocop
を、VSCodeでruby-rubocop拡張をインストールします。
WSLにインストールしたrubocop
のパスを調べます。
例(rbenv
を使用している場合)
$ which rubocop /home/<user>/.rbenv/shims/rubocop
Windows側で次のようなrubocop.bat
ファイルを作成して適当な場所に置きます。ただし~/.rbenv/shims/rubocop
の部分を上で調べたパスに変更してください。
@echo off wsl ~/.rbenv/shims/rubocop $^(echo '%*' ^| sed -e 's^|\\^|/^|g' -e 's^|\^([A-Za-z]\^)\:/\^(.*\^)^|/mnt/\L\1\E/\2^|g'^)
VSCodeのユーザー設定でrubocop.bat
があるディレクトリを指定します。
例
"ruby.rubocop.executePath": "c:/bin/"