Closed8

fishからzshに移行する

hiramekunhiramekun

6年くらい fish を使ってたけど、MacBook 買い替えのタイミングで zsh に戻ろうと思う。デフォルトのシェルだし、fish は POSIX準拠じゃないのでシェルスクリプトが実行できなかったりして辛いところがあった。

oh-my-zsh を使おうとしていたけど、zplugの方が優秀っぽいのでそちらを採用する

https://sanoto-nittc.hatenablog.com/entry/2017/12/16/213735
https://github.com/zplug/zplug

環境変数は .zshenv に書くと良いらしい

https://qiita.com/muran001/items/7b104d33f5ea3f75353f

hiramekunhiramekun

コンソールは Spaceship をインストールして使う。フォント周りの設定が事前に必要なので、FiraCode をインストールして iTerm2 の設定も変更する

https://github.com/tonsky/FiraCode

https://github.com/spaceship-prompt/spaceship-prompt

https://zenn.dev/rh820/articles/86f13278b68c1b

Spaceship は色々と設定ができる

https://spaceship-prompt.sh/config/intro/

最低限設定をしておいた

  • 時間表示
  • ユーザーネーム表示
  • パスを省略しない
  • 常に一行改行を追加する
# .spaceship.zsh
# Display time
SPACESHIP_TIME_SHOW=true

# Display username always
SPACESHIP_USER_SHOW=always

# Do not truncate path in repos
SPACESHIP_DIR_TRUNC_REPO=false

SPACESHIP_PROMPT_SYMBOL="➜"
SPACESHIP_PROMPT_ADD_NEWLINE=true
SPACESHIP_PROMPT_SEPARATE_LINE=true
SPACESHIP_PROMPT_PREFIXES_SHOW=true
SPACESHIP_PROMPT_SUFFIXES_SHOW=true
hiramekunhiramekun

zsh の ls の設定と、表示されるディレクトリとファイルで色を変える。 -a オプションもデフォルトでつける。

https://kojinjigyou.org/20342/

.zshrc の該当する部分はこんな感じ

alias ls='ls -aGF'
export LSCOLORS=cxfxcxdxbxegedabagacad

hiramekunhiramekun

enter を押した時とcd した時 に lsgit status -sb を表示する設定を .zshrc に追加する
https://qiita.com/2357gi/items/0ab1297357dedb90bbb1

function inner_enter {
  echo
  ls
  if [ "$(git rev-parse --is-inside-work-tree 2> /dev/null)" = 'true' ]; then
	echo
	echo -e "\e[0;33m--- git status ---\e[0m"
	git status -sb
  fi
}

function do_enter() {
  zle accept-line
  if [ -z "$BUFFER" ]; then
    inner_enter
  fi
}

zle -N do_enter
bindkey '^m' do_enter
bindkey '^j' do_enter

chpwd() {
  if [[ $(pwd) != $HOME ]]; then;
    inner_enter
  fi
}

enterを押すとこんな感じに出力される

hiramekunhiramekun

細かいところの設定を .zshrc に追加。
補完に隠しファイルを表示するのと、ビープ音を鳴らさないようにする

setopt globdots
setopt NO_BEEP
hiramekunhiramekun

pecoも .zshrc に設定する

https://www.wakuwakubank.com/posts/862-mac-zsh-peco/

自分は候補が下に表示される方が嬉しいので、 --layout=bottom-up を設定。

function peco-select-history() {
  BUFFER=$(\history -n -r 1 | peco --query "$LBUFFER" --layout=bottom-up)
  CURSOR=$#BUFFER
  zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history

hiramekunhiramekun

dotfileレポジトリで保存
https://github.com/hiramekun/dotfiles/tree/master/zsh

.zshrc だけに全て書かずに、alias.zsh, console.zsh, plugin.zsh に分けて、.zshrc の先頭で source するように変更した。

source "$DOTFILES_PATH/zsh/plugin.zsh"
source "$DOTFILES_PATH/zsh/alias.zsh"
source "$DOTFILES_PATH/zsh/console.zsh"
このスクラップは2023/02/18にクローズされました