ZSHの設定

ターミナルには種類があり、zsh, csh, bashがあるが、Tab補完をよく使う人、前使ったコマンドをまた使いたいときに便利なのがZshである。 ちなみに最近のmacはデフォルトでzshである。




現在のShellの確認


現在のターミナルがどのshellか確かめる。

$ echo $SHELL

というコマンドを打つと今使っているshellがbashだと

/bin/bash

が帰ってくる。 まずは、今の段階で使えるshell環境を確認する。

$ cat /etc/shells

を打つと今の段階で使えるshellの種類を表示できる。 このリストの中にzshがあればこの次のインストールはしなくても良い

zshのインストール


Linux(debian系)の場合

$ sudo apt install -y zsh

mac OSの場合、

$ brew install zsh

でインストールする。 これだけでは、ターミナルは変わらないので、shellを変更する。
ただしここで、パスを間違えると大変なので、よく確認してから打つこと。 まずは次のコマンドでzshのパスを確認する。

$ which zsh

個々で表示されたパスを次のコマンドで設定する。

$ chsh -s <zshのパス>

ここでosを再起動してターミナルを開くと、zshになっている。 そのとき、なにかキーを押せと言われるので、指示に従う。

zshの設定


参考: 漢のzsh
zshの設定は~/.zshrcに書く。 補完を強化する場合以下を~/.zshrcに追記

autoload -U compinit
compinit

以下を追記すると文字を打つたびに補完がされるが、個人的には少し煩わしかったので追記していない。

autoload predict-on
predict-on

過去に打ったコマンドをヒストリに残す。

HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000

コマンドを途中まで打った状態で、metaキー+pまたは+nキーでそのコマンドを使った履歴が出てくる。

autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[p" history-beginning-search-backward-end
bindkey "^[n" history-beginning-search-forward-end
bindkey "\\ep" history-beginning-search-backward-end
bindkey "\\en" history-beginning-search-forward-end