参考
手順
① /etc/wsl.conf を作成または編集する。
cat << EOL | sudo tee /etc/wsl.conf
[interop]
appendWindowsPath = false
EOL
② wslを再起動する。
③ うまくいかない場合は、コマンドプロンプトから wsl --shutdown
してからもう一度wslを起動する
④ そのほかの設定は https://devblogs.microsoft.com/commandline/automatically-configuring-wsl/ などを参照。
WSL / WSL2における対話コンソール上でコマンドのタブ補完をしようとすると、もっさりとした動作で快適とはいいがたい場合があります。
もっさりの原因の一つと考えられるのが、WSLのPATH環境変数に、Windows側の実行ファイルパスが追加されてしまっていることです。
以下が私の環境(Windows10 Insiders Preview のビルド2004)でPATH環境変数を表示した例です。
$ echo $PATH
/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/Intel/iCLS Client/:/mnt/c/Program Files/Intel/iCLS Client/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/IPT:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/IPT:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/Git/mingw64/bin:/mnt/c/Program Files/Git/usr/bin:/mnt/c/Program Files/Microsoft SQL Server/130/Tools/Binn/:/mnt/c/Program Files/PuTTY/:/mnt/c/Go/bin:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/HashiCorp/Vagrant/bin:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn/:/mnt/c/Program Files/nodejs/:/mnt/c/Program Files/Intel/WiFi/bin/:/mnt/c/Program Files/Common Files/Intel/WirelessCommon/:/mnt/c/Users/abcku/.windows-build-tools/python27/:/mnt/c/Program Files/nodejs/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/mnt/c/Users/abcku/AppData/Roaming/npm/node_modules/windows-build-tools/node_modules/.bin:/mnt/c/Users/abcku/AppData/Roaming/npm/node_modules/.bin:/mnt/c/Users/abcku/work/edex-ui/node_modules/.bin:/mnt/c/Users/abcku/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program Files/Docker Toolbox:/mnt/c/Users/abcku/AppData/Local/atom/bin:/mnt/c/Program Files/Git:/mnt/c/Program Files/Microsoft VS Code/bin:/mnt/c/Users/abcku/AppData/Roaming/npm:/mnt/c/Users/abcku/go/bin:/mnt/c/Users/abcku/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/MinGW/bin:/home/kotaro/.fzf/bin:/home/linuxbrew/.linuxbrew/bin
/mnt/c/
からはじまるパスが大量に含まれていることがわかります。
これにより、補完候補の探索に必要以上の時間がかかってしまっています。
WSL側からWindowsコマンドを頻繁に利用するのでなければ、Windows側のパスは不要といえます。
冒頭の手順を実施すると、以下のようにPATHが変化しました。
$ cat << EOL | sudo tee /etc/wsl.conf
> [interop]
> appendWindowsPath = false
> EOL
[sudo] password for kotaro:
[interop]
appendWindowsPath = false
$ exit
logout
C:\Users\taro3>wsl --shutdown
C:\Users\taro3>wsl
$ echo $PATH
/home/kotaro/.local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/linuxbrew/.linuxbrew/bin:/home/kotaro/.fzf/bin
よいWSLライフを!