こんにちは、lisです!
「zshはいいぞ!」とよく聞くので、WSLにzshのセットアップをしました。
zshとpowerlevel10kを設定しただけでも、見やすいし便利でした!
今回はセットアップまでにしたことを書いていきます。
zshにするメリット
まだ少ししか使っていませんが、今回のセットアップをしてみて良かったところを。
まずプロンプトを見やすくできます。
今のところはシンプルな感じにとどめています。
- カラフルで見やすくできる
- カレントディレクトとプロンプトで2段表示にしていますが、コマンドを実行する度に前行のカレントディレクト表示は消えてくれる
これだけでもかなり見やすくなる!
また実行内容をコピペしたいときとかかなり楽です。
インストール
$ apt install zsh
zsh叩いて表示されるやつそのままEnter
.zshrc
ひとまずここの.zshrcを丸コピで作成
再ログインするとプロンプトが変わってた。
プロンプトをカスタマイズ
現状。
% echo $PROMPT %{%}[%n@%m]%{%} %~ %#
powerlevel10k branch unstageNum, 未コミット数などを表示している その一環で要らなくなった部分の削除を行っている
preztoをインストール
% git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" % setopt EXTENDED_GLOB % for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" done
Powerlevel10Kをセットアップ
~/.zpreztorc
を下記のように編集します。L120あたりにありました。
#zstyle ':prezto:module:prompt' theme 'sorin' zstyle ':prezto:module:prompt' theme 'powerlevel10k'
zshに入り直す。
$ exit
$ zsh
アイコンが表示されているか聞かれるので回答していきます。
This is Powerlevel10k configuration wizard. You are seeing it because you haven't defined any Powerlevel10k configuration options. It will ask you a few questions and configure your prompt. Does this look like a diamond (rotated square)? reference: https://graphemica.com/%E2%97%86 ---> <--- (y) Yes. (n) No. (q) Quit and do nothing. Choice [ynq]:
Does this look like a lock? reference: https://fontawesome.com/icons/lock ---> <--- (y) Yes. (n) No. (r) Restart from the beginning. (q) Quit and do nothing. Choice [ynrq]:
Does this look like a Debian logo (swirl/spiral)? reference: https://debian.org/logos/openlogo-nd.svg ---> <--- (y) Yes. (n) No. (r) Restart from the beginning. (q) Quit and do nothing. Choice [ynrq]:
Do all these icons fit between the crosses? ---> XXXXXXXXX <--- (y) Yes. Icons are very close to the crosses but there is no overlap. (n) No. Some icons overlap neighbouring crosses. (r) Restart from the beginning. (q) Quit and do nothing. Choice [ynrq]:
プロンプトのスタイルを設定します。
とりあえず1にしてみました。
設定が続きます。
Character Set (1) Unicode. ~/src master 5s ❯ (2) ASCII. ~/src master 5s > (r) Restart from the beginning. (q) Quit and do nothing. Choice [12rq]:
Prompt Colors (1) 256 colors. ~/src master 5s ❯ (2) 8 colors. ~/src master 5s ❯ (r) Restart from the beginning. (q) Quit and do nothing. Choice [12rq]:
Show current time? (1) No. ~/src master 5s ❯ (2) 24-hour format. ~/src master 5s 16:23:42 ❯ (3) 12-hour format. ~/src master 5s 04:23:42 PM ❯ (r) Restart from the beginning. (q) Quit and do nothing. Choice [123rq]:
Prompt Height (1) One line. ~/src master ❯ 5s (2) Two lines. ~/src master 5s ❯ (r) Restart from the beginning. (q) Quit and do nothing. Choice [12rq]:
Prompt Connection (1) Disconnected. ~/src master 5s ❯ (2) Dotted. ~/src master ···································································· 5s ❯ (3) Solid. ~/src master ──────────────────────────────────────────────────────────────────── 5s ❯ (r) Restart from the beginning. (q) Quit and do nothing. Choice [123rq]:
Prompt Frame (1) No frame. ~/src master 5s ❯ (2) Left. ╭─ ~/src master 5s ╰─❯ (3) Right. ~/src master 5s ─╮ ❯ ─╯ (4) Full. ╭─ ~/src master 5s ─╮ ╰─❯ ─╯ (r) Restart from the beginning. (q) Quit and do nothing. Choice [1234rq]:
Prompt Spacing (1) Compact. ~/src master 5s ❯ ~/src master 5s ❯ (2) Sparse. ~/src master 5s ❯ ~/src master 5s ❯ (r) Restart from the beginning. (q) Quit and do nothing. Choice [12rq]:
Icons (1) Few icons. ~/src master 5s ❯ (2) Many icons. ~/src master 5s ❯ (r) Restart from the beginning. (q) Quit and do nothing. Choice [12rq]:
フォントにCicaとMesloLGS NF Regularを設定してみましたが、Windows Terminal上だとアイコンが小さく表示されてしまうようです。
Cica
MesloLGS NF Regular
アイコンがちゃんと見えれば見やすい気がしますが、今のところ見づらいしCicaがよかったので、Cicaでアイコンなしに設定しました。
Prompt Flow (1) Concise. ~/src master 5s ❯ (2) Fluent. ~/src on master took 5s ❯ (r) Restart from the beginning. (q) Quit and do nothing. Choice [12rq]:
Enable Transient Prompt? (y) Yes. ❯ git pull ❯ git branch x ~/src master 5s ❯ git checkout x (n) No. ~/src master 5s ❯ git pull ~/src master 5s ❯ git branch x ~/src master 5s ❯ git checkout x (r) Restart from the beginning. (q) Quit and do nothing. Choice [ynrq]:
Instant Prompt Mode https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt (1) Verbose (recommended). (2) Quiet. Choose this if you've read and understood instant prompt documentation. (3) Off. Choose this if you've tried instant prompt and found it incompatible with your zsh configuration files. (r) Restart from the beginning. (q) Quit and do nothing. Choice [123rq]:
こちらは,zshの起動を高速化してくれるモードです.
引用: zsh(+ dotfiles)入門
1 Verboseを選択しました。
Apply changes to ~/.zshrc? (y) Yes (recommended). (n) No. I know which changes to apply and will do it myself. (r) Restart from the beginning. (q) Quit and do nothing. Choice [ynrq]:
やっと設定完了。結構設問が長かった。
デフォルトシェルをzshに変更
ここまでやってzshいい感じだなということがわかったのでデフォルトシェルに変更しました。
$ sudo sh -c "echo '/bin/zsh' >> /etc/shells" $ chsh -s /bin/zsh
tmuxの設定
~/.tmux.conf
に下記を追加します。
set-option -g default-shell "${SHELL}" set -g default-command "${SHELL}"
これでtmuxでもzshになります。
tmux開いてもbashなんだけど……
という方は、tmuxのプロセスが全てkillされていることを確認してからtmuxを起動すればOKです。
ぼくは一旦tmuxを起動したりなんやりしていたせいで、tmuxが裏で生きていてうまくいっていませんでした。
❯ ps aux | grep tmux lis 226 0.0 0.0 9444 5920 ? Ss 09:32 0:02 tmux lis 1747 0.0 0.0 8160 732 pts/1 S+ 15:44 0:00 grep --color=auto tmux ❯ pkill tmux ❯ ps aux | grep tmux lis 1753 0.0 0.0 8160 740 pts/1 S+ 15:45 0:00 grep --color=auto tmux
その他対処すること
もともとbashのときに設定していた設定ファイルを読み込ませて楽をしようとしていました。
しかし、起動したら警告が出たりなんやりしたので見直しをしました。
やったことは
- 必要箇所を.zsh*に転記する
- 設定ファイル上でのechoを削除(これが原因でなんか警告が出る)
参考
コチラを参考にしました。ありがとうございました!
あとがき
zsh+powerlevel10kをセットアップしてみたでした!
カスタマイズ性が高いようなので、もっとカスタムできそうなので、できたら色々やっていきたいですね。
今回のものだけでも便利になるので、是非参考にしてみてください!