困り事
WSL のフォントを Lucida Console にしているが、vi や tmux を使うと MS ゴシックになる。
- MS ゴシックが見づらい。
- ウィンドウ内のスクリーンのサイズが変わる (フォントの大きさの関係で小さくなる)。
OS のロケールを UTF-8 (65001) にすれば直るが、代わりにあちこちで文字化けが起きる。
- コマンドプロンプトや PowerShell では日本語を表示したい。
- 他の日本語アプリを文字化けさせたくない。
- WSL では ASCII しか使わないから日本語は表示できなくてもいい。
OS のロケールはデフォルト (932) のまま、WSL だけ CodePage を 65001 にできんやろか。
解決方法
レジストリをいじったらできた。
- レジストリエディタを開く。
-
HKEY_CURRENT_USER\Console\C:_Program_Files_*_ubuntu.exe
を開く。 -
CodePage
という DWORD (32-bit) 値を作る。 - 値に 10 進で
65001
を入れる。 - レジストリエディタを閉じる。
- WSL を開く。
運用
レジストリの HKEY_CURRENT_USER\Console\C:_Program_Files_*_ubuntu.exe
が増えたり、中身が書き変わったりする場合、再度レジストリエディタで設定し直すことになる。
- キーがパッケージ名とバージョンを含むので、パッケージのバージョンごとの設定っぽい。
- レジストリエディタで一度設定したのに効かない場合はキーが増えている可能性を疑う。
参考記事