WSLにzshを導入しカスタマイズする

Homebrewのインストール

色々つかうので、Homebrewをインストールしておきます。

下準備

shell
$ sudo apt update

shell
$ sudo apt-get install build-essential curl file git

HomebrewのHPに記載されているコマンドを実行します。

shell
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストールが完了していればバージョンが表示されているはず。

shell
% brew --version
Homebrew 4.3.23

zshのインストール

zshをインストールします

shell
$ sudo apt install zsh

インストールできていることを確認

shell
$ zsh --version
zsh 5.8.1 (x86_64-ubuntu-linux-gnu)

デフォルトで動くshellをzshに変更します

shell
$ chsh -s $(which zsh)

ここまで実行できたらterminalを再起動します。お疲れ様でした。

Preztoの導入

zshのフレームワークであるPreztoを導入し、色々いい感じにしてもらいます。

以下のコマンドを実行し、必要なファイルをクローンしてきます。git コマンドが使えない場合は別途 git をinstallしておいてください。

shell
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

設定ファイルを作成、リンクするために以下のコマンドを実行します。

shell
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

terminalを再起動しましょう。

以下のようにterminalが変化していれば成功です。

再起動しても反映されないときは

以下のファイルを削除(移動)したうえで再度設定ファイル作成のコマンドを実行してみると直るかもです。

.zlogin

.zlogout

.zpreztorc

.zprofile

.zshenv

.zshrc

最後にbrewのpathを通して、設定の再読み込みをしておきます。

shell
$ echo 'export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"' >> ~/.zshrc

$ source .zshrc

preztoの設定

moduleの追加

.zpreztorc のmoduleの設定に、git、syntax-highlighting、autosuggestionsを追加します。

~/.zpreztorc
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
+ 'git' \
+ 'syntax-highlighting' \
+ 'autosuggestions' \
  'prompt'

※+は追加を’表しており、実際に記載するさいには+は削除してください。

テーマの変更

.zpreztorcを変更します。以下の zstyle ':prezto:module:prompt' theme 'sorin' を変更することで対応可能です。

~/.zpreztorc
#
# Prompt
#

# Set the prompt theme to load.
# Setting it to 'random' loads a random theme.
# Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'sorin'

以下のコマンドでテーマ一覧が見れますので、お好きなテーマを確認したうえで、上記ファイルを変更しましょう。

shell
$ prompt -p

私はcloudというテーマで、雲のマークを🐻に変更しました。

~/.zpreztorc
#
# Prompt
#

# Set the prompt theme to load.
# Setting it to 'random' loads a random theme.
# Auto set to 'off' on dumb terminals.
#zstyle ':prezto:module:prompt' theme 'sorin'
zstyle ':prezto:module:prompt' theme 'cloud' '🐻'

openコマンドの実装

macのopenコマンド的なのが無いとmac <-> win と2環境使ってるときに不便に感じるので、winのwslでもopen が使えるようにしておく。

.zshrc に以下の記述を追記

.zshrc
function open() {
    if [ $# != 1 ]; then
        explorer.exe .
    else
        if [ -e $1 ]; then
            cmd.exe /c start $(wslpath -w $1) 2> /dev/null
        else
            echo "open: $1 : No such file or directory" 
        fi
    fi
}

参考:https://zenn.dev/kaityo256/articles/open_command_on_wsl

open . で今いるフォルダをエクスプローラーで開ける+ open <fileName> でファイルを開くことができるようになります。

おわり

一旦終了。毎度セットアップのたびに何をするのか忘れてしまうので、必要最低限のことだけメモ。

他にもなにかあれば追記しておきます。