47歳でやむなくセミリタイア

病気のためセミリタイアをすることに。現在は週20時間程度のバイトをしています。その他、雑多なことを記録として書いています。

Windows Subsystem for Linux (WSL2) の設定まとめ

(2024/02/09 追記) 最新版を作成しました。

ekutajp.hatenablog.com


私のWSLの設定方法のまとめ。要するに再設定するときのためのメモ。

開発環境としてはLinuxが使い慣れているので、Linuxがほぼそのまま使えるWSLを設定して使っています。
WSLのざっくりとしたイメージは、Windows上の仮想マシン上でLinuxを動作させる感じです。

Windows Subsystem for Linux (WSL2) のインストール

(更新) 現在は以下だけでWSL2インストールが完了するようになりました。

PS> wsl --install

WSL の設定

インストールされているパッケージを最新版にする。

$ sudo apt update
$ sudo apt upgrade

wsltty

WSL用のターミナルです。デフォルトのターミナルは、コピーアンドペーストが(Linuxの)通常と違うのが気になるのでこちらを使っています。
https://github.com/mintty/wsltty/releases からwsltty-****.x86_64-install.exeをダウンロードして、インストールします。セキュリティー警告が出ますが、無視します。以下の設定を行います。

  • フォントをMSゴシック、10ptにする
  • マウスの右クリックをpasteにする
  • Windowサイズを120 x 44にする

claunchからwslttyを起動した場合、アイコンが無い状態で起動されることがあります。この場合claunchに登録する際に、「ショートカットをリンク先に変換」のチェックを外して、claunchの右クリックメニューで「アイテム登録」を選んで登録します。
Ubuntuをアップデートしたりすると、アイコンが表示されなくなることがありますが、wslttyを上書きインストールすると直ります。

.bashrcの設定

.bashrcはプロンプトの設定と、CTRL+Sによるstopの無効化を設定します。
(追記) 2022/10/6 stty stop undefを追加しました。

PS1="\w\$ "
stty stop undef

(2023/1/30 追記) WSLのロケールの設定

(2023/1/30 追記) Windows11+WSL2+Ubuntu-18.04の組み合わせで設定をしたところ、sshで別のlinuxサーバにログインすると日本語が文字化けするという現象がでました。

現象としては、catでは文字化けしない、LESSCHARSETを設定すると文字化けしない、コンソールやviでは文字化けするといった感じでした。
Web検索して色々と試したところ、以下のブログ記事の対処をWSL側で実施すると文字化けしなくなりました。

twinbird-htn.hatenablog.com

一応内容をここにも残しておきます。

.bashrcに以下を追加する。

export LANG=ja_JP.UTF-8
export LANGUAGE=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

以下を実施して、CUIでja_JP.UTF-8を選択した後、ターミナルを再起動する。

$ sudo locale-gen ja_JP.UTF-8
$ sudo dpkg-reconfigure locales

.inputrc の設定

.inputrcでbellをoffにしておきます

set bell-style none

.vimrc

bellをオフにして、PHPはタブでなくスペースを使うので、expandtabを設定します。
(2022/10/6 追記) syntax enable 時の動作の高速化のため、set regexpengine=1を追加しました。

set noerrorbells
set vb t_vb=
set encoding=utf-8
set background=dark
colorscheme hybrid
set t_Co=256            " need for colorscheme hybrid
set expandtab
set tabstop=4
set shiftwidth=4
set cursorline
set ambiwidth=double
set redrawtime=10000
set regexpengine=1

こんなものかな。しかし、Linux環境を作るのは簡単になりました。以前はcygwinとかcoLinuxとかでだましだまし使っていましたが、今は普通のディストリビューションLinux環境が数ステップで作れてしまいます。