質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

解決済

2回答

4172閲覧

VScodeでWSL接続時のターミナルの初期ディレクトリが現在開いているディレクトリにならない

arcu

総合スコア4

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

1クリップ

投稿2022/10/24 11:02

編集2022/10/25 14:14

前提

WSL2を導入し、VScodeでWSL拡張機能を入れてWSL上に保存したプロジェクトの開発をできるようにしています。

発生している問題

VScodeでWSLにリモート接続し、プロジェクトを開いた際にターミナルを表示すると、初期表示のディレクトリが現在開いているプロジェクトのディレクトリではなくWSLのホーム?ディレクトリになってしまう。(プロジェクトフォルダまでいちいちcdしないといけない状況。)

以前は、ターミナルの初期表示ディレクトリは現在開いているプロジェクトにcdした状態だったと思うのですが、なにかのタイミングで変わってしまったようです。

試したこと

初心者につき見当違いなこともあると思いますが、、
・VScodeや拡張機能の再インストール
・WSLのShellをbashからzshに変更
・setting.jsonに下記を追記

setting.json

1{ 2 "terminal.integrated.cwd": "${workspaceFolder}", 3 "terminal.integrated.defaultProfile.windows": "WSL", 4 "terminal.integrated.profiles.windows": { 5 "PowerShell": { 6 "source": "PowerShell", 7 "overrideName": true, 8 "icon": "terminal-powershell" 9 }, 10 "Command Prompt": { 11 "path": [ 12 "${env:windir}\\Sysnative\\cmd.exe", 13 "${env:windir}\\System32\\cmd.exe" 14 ], 15 "args": [], 16 "overrideName": true, 17 "icon": "terminal-cmd" 18 }, 19 "Git Bash": { 20 "source": "Git Bash", 21 "overrideName": true, 22 }, 23 "WSL": { 24 "path": ["C:\\WINDOWS\\System32\\wsl.exe"], 25 "args": [], 26 "overrideName": true, 27 "icon": "terminal-ubuntu-wsl" 28 } 29 } 30}

wsl show logコマンド実行結果

[2022-10-25 13:56:58.474] Resolving wsl+Ubuntu, resolveAttempt: 1 [2022-10-25 13:56:58.583] Starting VS Code Server inside WSL (wsl2) [2022-10-25 13:56:58.583] Extension version: 0.72.0 [2022-10-25 13:56:58.583] Windows build: 19043. Multi distro support: available. WSL path support: enabled [2022-10-25 13:56:58.585] No shell environment set or found for current distro. [2022-10-25 13:56:58.766] WSL daemon log file: [2022-10-25 13:56:58.767] Probing if server is already installed: C:\WINDOWS\System32\wsl.exe -d Ubuntu -e sh -c "[ -d ~/.vscode-server/bin/d045a5eda657f4d7b676dedbfa7aab8207f8a075 ] && printf found || ([ -f /etc/alpine-release ] && printf alpine-; uname -m)" [2022-10-25 13:56:58.929] Probing result: found [2022-10-25 13:56:58.929] Server install found in WSL [2022-10-25 13:56:58.931] Launching C:\WINDOWS\System32\wsl.exe -d Ubuntu sh -c '"$VSCODE_WSL_EXT_LOCATION/scripts/wslServer.sh" d045a5eda657f4d7b676dedbfa7aab8207f8a075 stable code-server .vscode-server --host=127.0.0.1 --port=0 --connection-token=2761274871-4175340292-3281565273-1154687058 --use-host-proxy --without-browser-env-var --disable-websocket-compression --accept-server-license-terms --telemetry-level=all' [2022-10-25 13:56:59.382] Setting up server environment: Looking for /home/arcu/.vscode-server/server-env-setup. Not found. [2022-10-25 13:56:59.382] WSL version: 5.10.102.1-microsoft-standard-WSL2 Ubuntu [2022-10-25 13:56:59.382] WSL-shell-PID: 2453 [2022-10-25 13:56:59.382] Node executable: /home/arcu/.vscode-server/bin/d045a5eda657f4d7b676dedbfa7aab8207f8a075/node [2022-10-25 13:56:59.382] Starting server: /home/arcu/.vscode-server/bin/d045a5eda657f4d7b676dedbfa7aab8207f8a075/bin/code-server --host=127.0.0.1 --port=0 --connection-token=2761274871-4175340292-3281565273-1154687058 --use-host-proxy --without-browser-env-var --disable-websocket-compression --accept-server-license-terms --telemetry-level=all [2022-10-25 13:56:59.382] * [2022-10-25 13:56:59.382] * Visual Studio Code Server [2022-10-25 13:56:59.382] * [2022-10-25 13:56:59.382] * By using the software, you agree to [2022-10-25 13:56:59.382] * the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and [2022-10-25 13:56:59.382] * the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement). [2022-10-25 13:56:59.382] * [2022-10-25 13:56:59.382] Server bound to 127.0.0.1:45897 (IPv4) [2022-10-25 13:56:59.382] Extension host agent listening on 45897 [2022-10-25 13:56:59.382] [2022-10-25 13:56:59.401] Started local proxy server on 50845. [2022-10-25 13:56:59.401] WSL resolver response: 127.0.0.1:50845 [2022-10-25 13:56:59.401] 接続の問題をデバッグするには、http://127.0.0.1:50845/version でローカル ブラウザーを開きます [2022-10-25 13:56:59.401] 'wslExeProxy' を使用して、'remote.WSL2.connectionMethod' を設定して構成されたとおりに VS Code サーバーに接続します [2022-10-25 13:56:59.401] 'wslExeProxy' は、スリープとネットワーク アダプターの変更後に再接続の問題を修正する必要があります。 [2022-10-25 13:56:59.401] 新しい設定に関連する問題は、https://github.com/microsoft/vscode-remote-release/issues/5894 に報告してください [2022-10-25 13:56:59.401] 以前の接続方法に戻すには、設定 'remote.WSL2.connectionMethod' を 'wsl2VMAddress' に変更します。

補足情報(FW/ツールのバージョンなど)

VScode バージョン: 1.72.2 (user setup)
VScode拡張 Remote Development

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Crimson_Tide

2022/10/25 00:35

・「ホームディレクトリ」とはWSLログインユーザーのホームディレクトリ(「cd ~」で移動したディレクトリ)という認識であっていますか? ・カレントディレクトリになって欲しいプロジェクトのディレクトリとは、ワークスペース、又は開いている開いているフォルダのディレクトリでしょうか? ・手元の環境ではワークスペースを開いた際、ターミナルのカレントはホームディレクトリではなくワークスペースディレクトリになりました。 「VScodeでWSLにリモート接続し、プロジェクトを開いた際にターミナルを表示」 ここの作業手順を詳細に教えていただけますか。 ・新規ディレクトリを予め作成。WSLリモート接続後に[ファイル]-[フォルダを開く]で作成したディレクトリを指定。ターミナルを起動したときも同様でしょうか? もし特定ディレクトリ、特定ワークスペースだけの現象であれば、そのワークスペースフォルダ設定(.code-workspace)もしくは.vscodeフォルダ内のsettings.jsonを質問欄に掲載してください。 ・複数VSCodeが起動している場合は、すべてのWSLリモート接続を切断してください。 新規で起動したVSCodeで左下リモート接続アイコンから「新しいWSLウィンドウ」を選択。 WSLリモート接続後、フォルダ等は開かず、コマンドパレットで「wsl show log」を実行し表示された結果を質問欄に掲載してください。 ・settings.json "terminal.integrated.profiles.linux"を"terminal.integrated.profiles.windows"に変更しましょう。 "terminal.integrated.profiles.linux"はlinux環境下の設定ですが、設定内容がWindows環境での設定になっており、本来"terminal.integrated.profiles.windows"に記載すべき内容です。 "terminal.integrated.defaultProfile.windows": "WSL",は "terminal.integrated.profiles.windows"で設定したプロファイル名を記載します。 どちらにしてもWSLリモート接続時のシェルの設定とは無関係のように思われます。 あと「"source": "Git Bash"」の末尾にカンマが必要。
arcu

2022/10/25 14:26

ご丁寧にご連絡ありがとうございます。 ・「ホームディレクトリ」とはWSLログインユーザーのホームディレクトリ(「cd ~」で移動したディレクトリ)という認識であっていますか? →ご認識のとおりです。 ・カレントディレクトリになって欲しいプロジェクトのディレクトリとは、ワークスペース、又は開いている開いているフォルダのディレクトリでしょうか? →ご認識のとおりです。 ・手元の環境ではワークスペースを開いた際、ターミナルのカレントはホームディレクトリではなくワークスペースディレクトリになりました。 「VScodeでWSLにリモート接続し、プロジェクトを開いた際にターミナルを表示」 ここの作業手順を詳細に教えていただけますか。 →VScode起動後、ファイル→フォルダを開くで既存のプロジェクト(WSL上のディレクトリに作成したもの)を指定して開いた後、ターミナル→新しいターミナルでターミナル画面を表示しました。 ・新規ディレクトリを予め作成。WSLリモート接続後に[ファイル]-[フォルダを開く]で作成したディレクトリを指定。ターミナルを起動したときも同様でしょうか? もし特定ディレクトリ、特定ワークスペースだけの現象であれば、そのワークスペースフォルダ設定(.code-workspace)もしくは.vscodeフォルダ内のsettings.jsonを質問欄に掲載してください。 →こちら試してみたのですが、特定ワークスペースだけではなくどのワークスペースでも同様の事象が発生してしまいます。新規ディレクトリ作成でもおなじです。 ・複数VSCodeが起動している場合は、すべてのWSLリモート接続を切断してください。 新規で起動したVSCodeで左下リモート接続アイコンから「新しいWSLウィンドウ」を選択。 WSLリモート接続後、フォルダ等は開かず、コマンドパレットで「wsl show log」を実行し表示された結果を質問欄に掲載してください。 →追記しました。 ・settings.json "terminal.integrated.profiles.linux"を"terminal.integrated.profiles.windows"に変更しましょう。 "terminal.integrated.profiles.linux"はlinux環境下の設定ですが、設定内容がWindows環境での設定になっており、本来"terminal.integrated.profiles.windows"に記載すべき内容です。 "terminal.integrated.defaultProfile.windows": "WSL",は "terminal.integrated.profiles.windows"で設定したプロファイル名を記載します。 どちらにしてもWSLリモート接続時のシェルの設定とは無関係のように思われます。 あと「"source": "Git Bash"」の末尾にカンマが必要。
Crimson_Tide

2022/10/26 06:08

お手数ですがsettings.jsonでterminalで始まる項目を質問欄に掲載していただけますか。 下記項目の設定の影響の可能性があります。 "terminal.integrated.cwd": "terminal.integrated.env.linux": "terminal.integrated.profiles.linux": また/home/username/.vscode-server/data/Machine/settings.json に記述があれば そちらも併せてterminalで始まる項目を掲載してください。
guest

回答2

0

自己解決

記載が遅れ、申し訳ありません。
こちら、過去にWSL2でsystemctlが使えない問題を解決するためにgenieというものをインストールしておりました。
こちらを削除することで結果としてVScodeでワークスペースのディレクトリでターミナルが開いてくれました。

解決に至った経緯
VScodeターミナル右側のターミナルのプロファイル表示部分にてプロファイル名:genieと出ており、カーソルオーバー時に「シェル統合がアクティブ化されませんでした。」と表示されており、genieを調べたところ、今回の対応に至りました。ご迷惑おかけしました。

投稿2022/11/19 12:05

arcu

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

反応がないので解決したのかもしれませんが、類似エラーでたどり着いた方向けに一応(解決する可能性のある)回答を記載しておきます。

WSLリモート接続時に優先される設定ファイルが下記にあります。

/home/username/.vscode-server/data/Machine/settings.json

当該ファイル内の"terminal.integrated.cwd"がターミナル接続時のカレントディレクトリになります。
削除するなりコメントアウトして無効にすれば、VSCodeで開いているフォルダがターミナル接続時のカレントディレクトリになります。

json

1"terminal.integrated.cwd": "/home/username",

投稿2022/10/31 13:57

編集2022/10/31 14:00
Crimson_Tide

総合スコア509

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arcu

2022/11/19 12:08

ご連絡が遅れ申し訳ございません。自己解決に記載させていただいた通り、過去にインストールしたものが原因で、VScode上のシェルの統合処理?が失敗していたようです。 わざわざ自環境で試していただいたりとお時間をいただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問