WSLのデフォルトのShellはBashです。 Bashだと履歴検索などが不便なので、Macで使っていたfish shellをインストールします。
fish shell - 3.x release series : “Fish shell maintainers” team
sudo apt-add-repository ppa:fish-shell/release-3 sudo apt-get update sudo apt-get install fish
デフォルトシェルをfishに変更
fishをdefault shellへ設定
$ chsh Password: Changing the login shell for sugi Enter the new value, or press ENTER for the default Login Shell [/bin/bash]: /usr/bin/fish
これだけだと、Windows Terminalを起動したときのシェルが変わらないことがあります。
コマンドラインと開始ディレクトリと設定
Bashのホームディレクトリを変更するときにコマンドラインを設定をしました。
これの影響でBashが起動します。
コマンドラインをwsl.exe
に戻します。
Windows Terminal の Ubuntu の開始ディレクトリをホームディレクトリにする | MSeeeeN | 大阪発 IT メディア by MSEN を参考にして、ホームディレクトリをWSLのホームディレクトリに設定します。
ledsun@MSI /m/c/U/led_l> cd ledsun@MSI ~> wslpath -w . \\wsl$\Ubuntu\home\ledsun
設定ファイルの同期
すっかり忘れていました。GitHub - ledsun/dotfiles: my dotfiles に設定ファイルがあるんでした。
~/.config/fish/config.fish
だけバックアップしていたので、 これを機に~/.config/fish/
をまるごとバックアップすることにしました。
プロンプトの設定
プロンプトの設定に汎用性がなくエラーが出たのでこれを機に変更します。
fishのプロンプトの右側をカスタマイズして、gitのブランチとstatusを表示させる - Qiita を参考にfish_config
コマンドをつかって良さそうなプロンプトを選びます。
こんな感じにしてみました。 ただ、うんこちゃんマークを表示するとiTermで表示が崩れました。 そのうち修正しようと思います。
rbenv
rbenvを有効にします。
.config/fish/config.fish
に次の設定を書きます。
set PATH $HOME/.rbenv/bin/ $PATH status --is-interactive; and source (rbenv init -|psub)
パスの設定はユニバーサルに設定した方がfish shellらしくて良いと思います。
RubyMineのターミナルが壊れた話 - @ledsun blogで、ユニバーサルがあまり上手く効かなかった記憶があるので、.config/fish/config.fish
で設定しています。
最初から入れる場合は Install/Use rbenv (Ruby) on Windows 10 Linux WSL(2) | by Hervé Leclerc | alter way | Medium を参考にして、次の感じになると思います。
# sudo apt-get update # sudo apt-get install -y \ build-essential \ git \ libreadline-dev \ libssl-dev \ zlib1g-dev # git clone https://github.com/rbenv/rbenv.git ~/.rbenv # git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build # git clone https://github.com/rkh/rbenv-whatis.git ~/.rbenv/plugins/rbenv-whatis # git clone https://github.com/rkh/rbenv-use.git ~/.rbenv/plugins/rbenv-use # cd ~/.rbenv && src/configure && make -C src
nvm
nvmは完全に入れ直す必要があるようです。
まず、GitHub - jorgebucaran/fisher: A plugin manager for Fish. をいれます。
ledsun@MSI:~[127]►curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher fisher install version 4.3.0 Fetching https://codeload.github.com/jorgebucaran/fisher/tar.gz/HEAD Installing jorgebucaran/fisher /home/ledsun/.config/fish/functions/fisher.fish /home/ledsun/.config/fish/completions/fisher.fish Installed 1 plugin/s
次に、GitHub - jorgebucaran/nvm.fish: Node.js version manager lovingly made for Fish. をいれます。
ledsun@MSI:~►fisher install jorgebucaran/nvm.fish fisher install version 4.3.0 Fetching https://codeload.github.com/jorgebucaran/nvm.fish/tar.gz/HEAD Installing jorgebucaran/nvm.fish /home/ledsun/.config/fish/functions/_nvm_index_update.fish /home/ledsun/.config/fish/functions/_nvm_list.fish /home/ledsun/.config/fish/functions/_nvm_version_activate.fish /home/ledsun/.config/fish/functions/_nvm_version_deactivate.fish /home/ledsun/.config/fish/functions/nvm.fish /home/ledsun/.config/fish/conf.d/nvm.fish /home/ledsun/.config/fish/completions/nvm.fish Downloading the Node distribution index... Installed 1 plugin/s
ledsun@MSI:~/nature-server[1]►nvm install 17 Installing Node v17.0.1 latest Fetching https://nodejs.org/dist/v17.0.1/node-v17.0.1-linux-x64.tar.gz Now using Node v17.0.1 (npm 8.1.0) ~/.local/share/nvm/v17.0.1/bin/node ledsun@MSI:~/nature-server►node -v v17.0.1
つかえます。