質問: ### 前提・実現したいこと タイトルにある通りです。 あるファイルをVScode内の統合ターミナルから開きたくて質問しています。 ### 発生している問題・エラーメッセージ bash上で `code .` と入力すると、 コマンドが見つからないと怒られます。 powershellで行うとcodeコマンドは正常に起動しますが、bashからだとできないです。 ### 試したこと bash on ubuntu on windowsの.bash_profileにマウントを通してwindows上のcodeコマンド(VScode内のbinファイル)しかし以前として、コマンドが見つからないと怒られます。 ubuntuのバージョンは14.04です ### 補足情報(言語/FW/ツール等のバージョンなど) 今まではminttyとvimを使ってコードの編集などを行っていたのですが、vimは管理が大変なのである程度デフォルトで使えるVScodeに乗り換えようと思い設定をしていたところ、引っかかりました。 理想はVScodeとその中の統合ターミナルで作業が完結するようにしたいです。 また乗り換えたばかり(そもそも開発自体初心者)なのでVScodeを使って皆さんがどのように開発しているのかを知りたいです。 私は基本てきにpythonとdjangoを使ってwebアプリを作っています。
回答: `"/mnt/c/Program Files (x86)/Microsoft VS Code/Code.exe"`と指定すればBash上からもVSCodeの起動は可能です。しかし、作業ディレクトリの指定はできず、"C:\WINDOWS\system32"に強制的に変更されます。Bash上のファイルを開くことも保存することもできません。普通に使うことはできません。 Bash on Ubuntu on Windows(以下Bash)はシームレスな仮想環境のような機能です。VirtualBoxのような完全な仮想環境というよりDockerのようなコンテナに近い技術で、それら二つよりもより融合してシームレス(Windowsの通常領域と区別があまりされない)になっています。しかし、WindowsとLinuxでは無視できない差異があるため、普通のWindowsと同じように使うことはできません。とくに、Bash上でのホームは特殊なディレクトリになっている(例えば、ファイル名の大文字小文字を区別するなど)ため、通常のWindowsから操作すると動きがおかしくなります。 では、どうするかですが 1. BashにVSCodeを入れる。 ただし、手元で試して見ましたが、うまく起動しませんでした。方法があるかはわかりません。 2. Bashで、"/mnt/c"経由でWindows上の通常のディレクトリに移動して、そこで各コマンドを実行する。 VSCodeからBashを操作するのを諦めて、VSCodeはエディタとして、実際の実行はBashで行います。VSCodeでのデフォルト改行をCRLFからLFに変更しておくことを忘れないで下さい。その他、モード(644とか755)やファイルの大文字小文字の区別などに注意が必要ですが、バイナリ等でなければ、うまく動くと思われます。 3. 通常のUbuntuを入れる。 仮想環境でもデュアルブートでも良いですが、通常のUbuntuを使えば、その上でVSCodeが使えます。何も問題は無くなります。 4. Windows版のPythonで我慢する。 多少の違いは目をつぶって頑張ります。コンパイルやUNIX/Linuxでのライブラリが必要な場合は、MSYS2のMingw64版を使うと良いかもしれません。