はじめに
WSLとWezTerm利用時に、WezTerm側からペインやタブを作成する際、生成元のディレクトリを継承するように設定する方法を説明します。
どういった問題が起きていたか
WezTerm側から新しくペインを作成すると、Windowsのホームディレクトリで開始されてしまう問題がありました。
原因
WezTermを含め、ターミナルにはシェルが現在どのディレクトリにいるかを知る手段がありません。そのため、新しいペインを作成する際に「現在のディレクトリ」情報を引き継ぐことができず、WSL起動時のデフォルト動作として、Windowsのホームディレクトリを使用することがあります。
解決方法
WezTermに「現在のディレクトリ情報」を伝えることができれば解決できます。伝える手段の1つとしてOSC(Operating System Command)7を使用する方法があります。OSC7によって現在のディレクトリやその他の情報をシェルからWezTermに伝えることができます。
WezTerm側で解決する手段は他にもあると思いますが、設定がシンプルなため、この方法を採用しました。
OSC7の設定方法
お使いのシェルの設定ファイルに以下を追記します。
zshの場合
# --------------------------------------------
# OSC 7 - WezTermにカレントディレクトリを通知
# --------------------------------------------
__wezterm_osc7() {
printf '\e]7;file://localhost%s\e\\' "$PWD"
}
precmd_functions+=(__wezterm_osc7)
bashの場合
# --------------------------------------------
# OSC 7 - WezTermにカレントディレクトリを通知
# --------------------------------------------
__wezterm_osc7() {
printf '\e]7;file://localhost%s\e\\' "$PWD"
}
PROMPT_COMMAND="__wezterm_osc7${PROMPT_COMMAND:+;$PROMPT_COMMAND}"
設定ファイルを保存後、以下のコマンドで設定を反映するか、ターミナルを再起動してください。
なお、WezTerm側では特別な設定は不要です。OSC7を受信すると自動的に新規ペイン・タブ作成時にそのディレクトリを引き継ぎます。
source ~/.zshrc # zshの場合
source ~/.bashrc # bashの場合
動作確認
設定すると、ペインやタブの作成時に作成元のディレクトリが引き継がれるようになります。
JISOUのメンバー募集中!
プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてください!
▼▼▼
https://projisou.jp

