Help us understand the problem. What is going on with this article?

zshを使ってみる

ゴール

こうなる
image.png

zsh?

そもそもシェルとは

シェル (shell) はオペレーティングシステム (OS) のユーザーのためにインタフェースを提供するソフトウェアであり、カーネルのサービスへのアクセスを提供する。

「シェル」フリー百科事典 ウィキペディア日本語版

zshはbashより優秀と聞いた

  • コマンドオプションの補完
  • 端末間の履歴共有

導入

環境

macOS Catalina

※macOS Catalinaからデフォルトシェルがzshに変更された

1. zshのインストール

$ /bin/zsh --version # デフォルトで入っているzshのバージョン
$ brew info zsh # Homebrewでインストールできるzshのバージョン

# Homebrewで入れる
$ brew install zsh

# 補完を強力にしてくれてるプラグインも
$ brew install zsh-completions zsh-autosuggestions zsh-syntax-highlighting

2. ログインシェルをzshにする

# 現在のログインシェルを確認
$ echo $SHELL

Homebrewでインストールしたzshをシェル一覧に登録する
sudo vi /etc/shellsで以下を追記

/usr/local/bin/zsh
# ログインシェル変更
$ chsh -s /usr/local/bin/zsh

3. 設定ファイルの作成

vi ~/.zshrcで設定ファイルを作成して以下を記述
※設定ファイルは他にも.zprofileなどもあるが、.zshrcへの記述がいいという記事が多いので

# 環境変数
export LANG=ja_JP.UTF-8
export LSCOLORS=gxfxcxdxbxegedabagacad

# ヒストリの設定
HISTFILE=~/.zsh_history
HISTSIZE=30000
SAVEHIST=30000
# 直前のコマンドの重複を削除
setopt hist_ignore_dups
# 同じコマンドをヒストリに残さない
setopt hist_ignore_all_dups
# 同時に起動したzshの間でヒストリを共有
setopt share_history

# 補完機能を有効にする
autoload -Uz compinit
compinit -u
if [ -e /usr/local/share/zsh-completions ]; then
  fpath=(/usr/local/share/zsh-completions $fpath)
fi
# 補完で小文字でも大文字にマッチさせる
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
# 補完候補を詰めて表示
setopt list_packed
# 補完候補一覧をカラー表示
zstyle ':completion:*' list-colors ''

# プラグインを有効化
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# コマンドのスペルを訂正
setopt correct
# ビープ音を鳴らさない
setopt no_beep

# prompt
autoload -Uz vcs_info
setopt prompt_subst
zstyle ':vcs_info:git:*' check-for-changes true
zstyle ':vcs_info:git:*' stagedstr "%F{magenta}!"
zstyle ':vcs_info:git:*' unstagedstr "%F{yellow}+"
zstyle ':vcs_info:*' formats "%F{cyan}%c%u[%b]%f"
zstyle ':vcs_info:*' actionformats '[%b|%a]'
precmd() { vcs_info }
PROMPT='%T %~ %F{magenta}$%f '
RPROMPT='${vcs_info_msg_0_}'

# alias
alias ls='ls -aF'
alias ll='ls -l'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vi='vim'
alias cat='cat -n'
alias less='less -NM'
export CLICOLOR=1
export LSCOLORS=DxGxcxdxCxegedabagacad

4. 設定反映

source ~/.zshrcで設定を反映させて
完成!
image.png

使ってみて良かったこと

コマンドオプションの補完がいい
あれ、あのオプションなんだったっけって時にすぐ確認できる

導入の過程で設定ファイルに関しても色々と勉強になった

参考

たいへん参考になりました
ありがとうございます

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away